home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1992-01-17 | 15.3 KB | [TEXT/KAHL] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| Compact Compressed (Unix) (archive/compact)
| ext
| Supported |
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
10%
| dexvert
| Jesper Olsen Module (music/jesperOlsen)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, Fri Jan 17 12:00:00 1992, modified Fri Jan 17 12:00:00 1992, creator Think C, type ASCII, 14477 bytes "Port.c" , at 0x390d 818 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
49%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
33%
| TrID
| TTComp archive compressed (bin-4K)
| default (weak)
| |
16%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [KAHL] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 06 50 6f 72 74 2e 63 | 00 00 00 00 00 00 00 00 |..Port.c|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4b 41 48 | 4c 00 00 00 00 00 00 00 |.TEXTKAH|L.......|
|00000050| 00 00 00 00 00 38 8d 00 | 00 03 32 a5 9c bc 10 a5 |.....8..|..2.....|
|00000060| 9c bc 10 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 06 bc 00 00 |........|........|
|00000080| 2f 2a 0d 09 54 65 72 6d | 69 6e 61 6c 20 32 2e 32 |/*..Term|inal 2.2|
|00000090| 0d 09 22 53 65 72 69 61 | 6c 2e 63 22 0d 2a 2f 0d |.."Seria|l.c".*/.|
|000000a0| 0d 23 69 66 64 65 66 20 | 54 48 49 4e 4b 5f 43 0d |.#ifdef |THINK_C.|
|000000b0| 23 69 6e 63 6c 75 64 65 | 20 22 4d 61 63 48 65 61 |#include| "MacHea|
|000000c0| 64 65 72 73 22 0d 23 64 | 65 66 69 6e 65 20 43 52 |ders".#d|efine CR|
|000000d0| 45 46 4e 55 4d 28 78 29 | 09 78 2e 69 6f 43 52 65 |EFNUM(x)|.x.ioCRe|
|000000e0| 66 4e 75 6d 0d 23 65 6e | 64 69 66 0d 23 69 66 64 |fNum.#en|dif.#ifd|
|000000f0| 65 66 20 61 70 70 6c 65 | 63 0d 23 70 72 61 67 6d |ef apple|c.#pragm|
|00000100| 61 20 6c 6f 61 64 20 22 | 3a 28 4f 62 6a 65 63 74 |a load "|:(Object|
|00000110| 73 29 3a 4d 61 63 48 65 | 61 64 65 72 73 4d 50 57 |s):MacHe|adersMPW|
|00000120| 22 0d 23 70 72 61 67 6d | 61 20 73 65 67 6d 65 6e |".#pragm|a segmen|
|00000130| 74 20 4d 61 69 6e 32 0d | 23 64 65 66 69 6e 65 20 |t Main2.|#define |
|00000140| 43 52 45 46 4e 55 4d 28 | 78 29 09 78 2e 69 6f 43 |CREFNUM(|x).x.ioC|
|00000150| 52 65 66 4e 75 6d 0d 23 | 65 6e 64 69 66 0d 0d 23 |RefNum.#|endif..#|
|00000160| 69 6e 63 6c 75 64 65 20 | 22 50 6f 72 74 2e 68 22 |include |"Port.h"|
|00000170| 0d 23 69 6e 63 6c 75 64 | 65 20 22 54 65 78 74 2e |.#includ|e "Text.|
|00000180| 68 22 0d 23 69 6e 63 6c | 75 64 65 20 22 4d 61 69 |h".#incl|ude "Mai|
|00000190| 6e 2e 68 22 0d 0d 23 69 | 66 64 65 66 20 55 53 45 |n.h"..#i|fdef USE|
|000001a0| 43 54 42 09 09 09 09 09 | 2f 2a 20 43 6f 6d 6d 75 |CTB.....|/* Commu|
|000001b0| 6e 69 63 61 74 69 6f 6e | 20 54 6f 6f 6c 20 42 6f |nication| Tool Bo|
|000001c0| 78 20 69 6e 63 6c 75 64 | 65 73 20 2a 2f 0d 23 69 |x includ|es */.#i|
|000001d0| 6e 63 6c 75 64 65 20 3c | 43 6f 6d 6d 52 65 73 6f |nclude <|CommReso|
|000001e0| 75 72 63 65 73 2e 68 3e | 0d 23 69 6e 63 6c 75 64 |urces.h>|.#includ|
|000001f0| 65 20 3c 43 52 4d 53 65 | 72 69 61 6c 44 65 76 69 |e <CRMSe|rialDevi|
|00000200| 63 65 73 2e 68 3e 0d 23 | 65 6e 64 69 66 0d 0d 23 |ces.h>.#|endif..#|
|00000210| 64 65 66 69 6e 65 20 49 | 4e 50 55 54 4c 45 4e 47 |define I|NPUTLENG|
|00000220| 54 48 20 43 6f 6e 66 69 | 67 2e 69 6e 70 75 74 09 |TH Confi|g.input.|
|00000230| 09 2f 2a 20 53 69 7a 65 | 20 6f 66 20 69 6e 70 75 |./* Size| of inpu|
|00000240| 74 20 62 75 66 66 65 72 | 20 2a 2f 0d 23 64 65 66 |t buffer| */.#def|
|00000250| 69 6e 65 20 43 55 52 52 | 45 4e 54 50 4f 52 54 09 |ine CURR|ENTPORT.|
|00000260| 53 65 74 74 69 6e 67 73 | 2e 70 6f 72 74 4e 61 6d |Settings|.portNam|
|00000270| 65 09 2f 2a 20 43 75 72 | 72 65 6e 74 20 70 6f 72 |e./* Cur|rent por|
|00000280| 74 27 73 20 6e 61 6d 65 | 20 2a 2f 0d 0d 74 79 70 |t's name| */..typ|
|00000290| 65 64 65 66 09 73 74 72 | 75 63 74 20 7b 0d 09 09 |edef.str|uct {...|
|000002a0| 42 79 74 65 20 2a 6e 61 | 6d 65 3b 09 09 09 09 2f |Byte *na|me;..../|
|000002b0| 2a 20 50 6f 72 74 27 73 | 20 6e 61 6d 65 20 2a 2f |* Port's| name */|
|000002c0| 0d 09 09 42 79 74 65 20 | 2a 69 6e 70 75 74 3b 09 |...Byte |*input;.|
|000002d0| 09 09 2f 2a 20 49 6e 70 | 75 74 20 64 72 69 76 65 |../* Inp|ut drive|
|000002e0| 72 27 73 20 6e 61 6d 65 | 20 2a 2f 0d 09 09 42 79 |r's name| */...By|
|000002f0| 74 65 20 2a 6f 75 74 70 | 75 74 3b 09 09 09 2f 2a |te *outp|ut;.../*|
|00000300| 20 4f 75 74 70 75 74 20 | 64 72 69 76 65 72 27 73 | Output |driver's|
|00000310| 20 6e 61 6d 65 20 2a 2f | 0d 7d 20 53 45 52 49 41 | name */|.} SERIA|
|00000320| 4c 4e 41 4d 45 3b 0d 0d | 2f 2a 20 2d 2d 2d 2d 2d |LNAME;..|/* -----|
|00000330| 20 53 74 61 74 69 63 20 | 64 61 74 61 20 2d 2d 2d | Static |data ---|
|00000340| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000350| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000360| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000370| 20 2a 2f 0d 0d 73 74 61 | 74 69 63 20 73 68 6f 72 | */..sta|tic shor|
|00000380| 74 20 49 4e 50 55 54 20 | 3d 20 30 3b 09 09 09 2f |t INPUT |= 0;.../|
|00000390| 2a 20 43 75 72 72 65 6e | 74 20 69 6e 70 75 74 20 |* Curren|t input |
|000003a0| 72 65 66 65 72 65 6e 63 | 65 20 6e 75 6d 62 65 72 |referenc|e number|
|000003b0| 20 2a 2f 0d 73 74 61 74 | 69 63 20 73 68 6f 72 74 | */.stat|ic short|
|000003c0| 20 4f 55 54 50 55 54 20 | 3d 20 30 3b 09 09 2f 2a | OUTPUT |= 0;../*|
|000003d0| 20 43 75 72 72 65 6e 74 | 20 6f 75 74 70 75 74 20 | Current| output |
|000003e0| 72 65 66 65 72 65 6e 63 | 65 20 6e 75 6d 62 65 72 |referenc|e number|
|000003f0| 20 2a 2f 0d 73 74 61 74 | 69 63 20 73 68 6f 72 74 | */.stat|ic short|
|00000400| 20 50 4f 52 54 4e 4f 20 | 3d 20 30 3b 09 09 2f 2a | PORTNO |= 0;../*|
|00000410| 20 31 20 3d 20 4d 6f 64 | 65 6d 20 50 6f 72 74 2c | 1 = Mod|em Port,|
|00000420| 20 32 20 3d 20 50 72 69 | 6e 74 65 72 20 50 6f 72 | 2 = Pri|nter Por|
|00000430| 74 20 2a 2f 0d 73 74 61 | 74 69 63 20 50 74 72 20 |t */.sta|tic Ptr |
|00000440| 69 6e 70 75 74 42 75 66 | 66 65 72 20 3d 20 30 3b |inputBuf|fer = 0;|
|00000450| 09 09 2f 2a 20 43 75 72 | 72 65 6e 74 20 69 6e 70 |../* Cur|rent inp|
|00000460| 75 74 20 62 75 66 66 65 | 72 20 2a 2f 0d 73 74 61 |ut buffe|r */.sta|
|00000470| 74 69 63 20 50 74 72 20 | 6f 75 74 70 75 74 42 75 |tic Ptr |outputBu|
|00000480| 66 66 65 72 20 3d 20 30 | 3b 09 2f 2a 20 43 75 72 |ffer = 0|;./* Cur|
|00000490| 72 65 6e 74 20 6f 75 74 | 70 75 74 20 62 75 66 66 |rent out|put buff|
|000004a0| 65 72 20 2a 2f 0d 0d 23 | 64 65 66 69 6e 65 20 62 |er */..#|define b|
|000004b0| 61 75 64 33 38 34 30 30 | 09 31 09 09 09 2f 2a 20 |aud38400|.1.../* |
|000004c0| 4e 6f 74 20 64 65 66 69 | 6e 64 65 64 20 69 6e 20 |Not defi|nded in |
|000004d0| 53 65 72 69 61 6c 44 76 | 72 2e 68 20 2a 2f 0d 0d |SerialDv|r.h */..|
|000004e0| 73 74 61 74 69 63 20 73 | 68 6f 72 74 20 42 61 75 |static s|hort Bau|
|000004f0| 64 5b 5d 20 3d 20 7b 09 | 09 09 2f 2a 20 42 61 75 |d[] = {.|../* Bau|
|00000500| 64 20 72 61 74 65 73 20 | 77 65 20 73 75 70 70 6f |d rates |we suppo|
|00000510| 72 74 20 2a 2f 0d 09 62 | 61 75 64 33 30 30 2c 09 |rt */..b|aud300,.|
|00000520| 09 09 09 09 2f 2a 20 30 | 20 2a 2f 0d 09 62 61 75 |..../* 0| */..bau|
|00000530| 64 36 30 30 2c 09 09 09 | 09 09 2f 2a 20 31 20 2a |d600,...|../* 1 *|
|00000540| 2f 0d 09 62 61 75 64 31 | 32 30 30 2c 09 09 09 09 |/..baud1|200,....|
|00000550| 09 2f 2a 20 32 20 2a 2f | 0d 09 62 61 75 64 32 34 |./* 2 */|..baud24|
|00000560| 30 30 2c 09 09 09 09 09 | 2f 2a 20 33 20 2a 2f 0d |00,.....|/* 3 */.|
|00000570| 09 62 61 75 64 34 38 30 | 30 2c 09 09 09 09 09 2f |.baud480|0,...../|
|00000580| 2a 20 34 20 2a 2f 0d 09 | 62 61 75 64 39 36 30 30 |* 4 */..|baud9600|
|00000590| 2c 09 09 09 09 09 2f 2a | 20 35 20 2a 2f 0d 09 62 |,...../*| 5 */..b|
|000005a0| 61 75 64 31 39 32 30 30 | 2c 09 09 09 09 09 2f 2a |aud19200|,...../*|
|000005b0| 20 36 20 2a 2f 0d 09 62 | 61 75 64 33 38 34 30 30 | 6 */..b|aud38400|
|000005c0| 2c 09 09 09 09 09 2f 2a | 20 37 20 2a 2f 0d 09 62 |,...../*| 7 */..b|
|000005d0| 61 75 64 35 37 36 30 30 | 09 09 09 09 09 2f 2a 20 |aud57600|...../* |
|000005e0| 38 20 2a 2f 0d 7d 3b 0d | 73 74 61 74 69 63 20 73 |8 */.};.|static s|
|000005f0| 68 6f 72 74 20 44 61 74 | 61 5b 5d 20 3d 20 7b 09 |hort Dat|a[] = {.|
|00000600| 09 09 2f 2a 20 44 61 74 | 61 20 62 69 74 73 20 77 |../* Dat|a bits w|
|00000610| 65 20 73 75 70 70 6f 72 | 74 20 2a 2f 0d 09 64 61 |e suppor|t */..da|
|00000620| 74 61 37 2c 09 09 09 09 | 09 09 2f 2a 20 30 20 2a |ta7,....|../* 0 *|
|00000630| 2f 0d 09 64 61 74 61 38 | 09 09 09 09 09 09 2f 2a |/..data8|....../*|
|00000640| 20 31 20 2a 2f 0d 7d 3b | 0d 73 74 61 74 69 63 20 | 1 */.};|.static |
|00000650| 73 68 6f 72 74 20 50 61 | 72 69 74 79 5b 5d 20 3d |short Pa|rity[] =|
|00000660| 20 7b 09 09 2f 2a 20 50 | 61 72 69 74 79 20 6f 70 | {../* P|arity op|
|00000670| 74 69 6f 6e 73 20 77 65 | 20 73 75 70 70 6f 72 74 |tions we| support|
|00000680| 20 2a 2f 0d 09 6e 6f 50 | 61 72 69 74 79 2c 09 09 | */..noP|arity,..|
|00000690| 09 09 09 2f 2a 20 30 20 | 2a 2f 0d 09 65 76 65 6e |.../* 0 |*/..even|
|000006a0| 50 61 72 69 74 79 2c 09 | 09 09 09 09 2f 2a 20 31 |Parity,.|..../* 1|
|000006b0| 20 2a 2f 0d 09 6f 64 64 | 50 61 72 69 74 79 09 09 | */..odd|Parity..|
|000006c0| 09 09 09 2f 2a 20 32 20 | 2a 2f 0d 7d 3b 0d 73 74 |.../* 2 |*/.};.st|
|000006d0| 61 74 69 63 20 73 68 6f | 72 74 20 53 74 6f 70 42 |atic sho|rt StopB|
|000006e0| 69 74 73 5b 5d 20 3d 20 | 7b 09 09 2f 2a 20 53 74 |its[] = |{../* St|
|000006f0| 6f 70 20 62 69 74 73 20 | 77 65 20 73 75 70 70 6f |op bits |we suppo|
|00000700| 72 74 20 2a 2f 0d 09 73 | 74 6f 70 31 30 2c 09 09 |rt */..s|top10,..|
|00000710| 09 09 09 09 2f 2a 20 30 | 20 2a 2f 0d 09 73 74 6f |..../* 0| */..sto|
|00000720| 70 32 30 09 09 09 09 09 | 09 2f 2a 20 31 20 2a 2f |p20.....|./* 1 */|
|00000730| 0d 7d 3b 0d 0d 73 74 61 | 74 69 63 20 53 45 52 49 |.};..sta|tic SERI|
|00000740| 41 4c 4e 41 4d 45 20 4e | 61 6d 65 73 5b 5d 20 3d |ALNAME N|ames[] =|
|00000750| 20 7b 09 2f 2a 20 55 73 | 65 64 20 77 69 74 68 6f | {./* Us|ed witho|
|00000760| 75 74 20 43 6f 6d 6d 75 | 6e 69 63 61 74 69 6f 6e |ut Commu|nication|
|00000770| 20 54 6f 6f 6c 20 42 6f | 78 20 2a 2f 0d 09 09 7b | Tool Bo|x */...{|
|00000780| 20 28 42 79 74 65 20 2a | 29 22 5c 70 4d 6f 64 65 | (Byte *|)"\pMode|
|00000790| 6d 20 50 6f 72 74 22 2c | 20 28 42 79 74 65 20 2a |m Port",| (Byte *|
|000007a0| 29 22 5c 70 2e 41 49 6e | 22 2c 20 28 42 79 74 65 |)"\p.AIn|", (Byte|
|000007b0| 20 2a 29 22 5c 70 2e 41 | 4f 75 74 22 20 7d 2c 0d | *)"\p.A|Out" },.|
|000007c0| 09 09 7b 20 28 42 79 74 | 65 20 2a 29 22 5c 70 50 |..{ (Byt|e *)"\pP|
|000007d0| 72 69 6e 74 65 72 20 50 | 6f 72 74 22 2c 20 28 42 |rinter P|ort", (B|
|000007e0| 79 74 65 20 2a 29 22 5c | 70 2e 42 49 6e 22 2c 20 |yte *)"\|p.BIn", |
|000007f0| 28 42 79 74 65 20 2a 29 | 22 5c 70 2e 42 4f 75 74 |(Byte *)|"\p.BOut|
|00000800| 22 20 7d 0d 7d 3b 0d 0d | 2f 2a 20 2d 2d 2d 2d 2d |" }.};..|/* -----|
|00000810| 20 46 69 6e 64 20 73 65 | 72 69 61 6c 20 64 65 76 | Find se|rial dev|
|00000820| 69 63 65 73 20 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ices ---|--------|
|00000830| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000840| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000850| 20 2a 2f 0d 0d 76 6f 69 | 64 20 53 65 72 69 61 6c | */..voi|d Serial|
|00000860| 44 65 76 69 63 65 28 53 | 44 50 52 4f 43 20 63 61 |Device(S|DPROC ca|
|00000870| 6c 6c 62 61 63 6b 29 0d | 7b 0d 09 2f 2a 09 4c 6f |llback).|{../*.Lo|
|00000880| 6f 70 20 74 68 72 75 20 | 61 6c 6c 20 73 65 72 69 |op thru |all seri|
|00000890| 61 6c 20 64 65 76 69 63 | 65 73 20 61 6e 64 20 63 |al devic|es and c|
|000008a0| 61 6c 6c 20 74 68 65 20 | 22 63 61 6c 6c 62 61 63 |all the |"callbac|
|000008b0| 6b 22 20 66 75 6e 63 74 | 69 6f 6e 0d 09 09 77 69 |k" funct|ion...wi|
|000008c0| 74 68 20 74 68 65 20 66 | 6f 6c 6c 6f 77 69 6e 67 |th the f|ollowing|
|000008d0| 20 61 72 67 75 6d 65 6e | 74 73 3a 0d 09 09 09 31 | argumen|ts:....1|
|000008e0| 2e 20 49 6e 64 65 78 20 | 28 6f 6e 65 20 62 61 73 |. Index |(one bas|
|000008f0| 65 64 29 0d 09 09 09 32 | 2e 20 50 6f 72 74 27 73 |ed)....2|. Port's|
|00000900| 20 6e 61 6d 65 0d 09 09 | 09 33 2e 20 49 6e 70 75 | name...|.3. Inpu|
|00000910| 74 20 64 72 69 76 65 72 | 27 73 20 6e 61 6d 65 0d |t driver|'s name.|
|00000920| 09 09 09 34 2e 20 4f 75 | 74 70 75 74 20 64 72 69 |...4. Ou|tput dri|
|00000930| 76 65 72 27 73 20 6e 61 | 6d 65 0d 09 09 54 68 65 |ver's na|me...The|
|00000940| 20 22 63 61 6c 6c 62 61 | 63 6b 22 20 66 75 6e 63 | "callba|ck" func|
|00000950| 74 69 6f 6e 20 73 68 6f | 75 6c 64 20 72 65 74 75 |tion sho|uld retu|
|00000960| 72 6e 20 54 52 55 45 20 | 74 6f 20 73 74 6f 70 20 |rn TRUE |to stop |
|00000970| 74 68 65 20 73 65 61 72 | 63 68 2c 0d 09 09 6f 72 |the sear|ch,...or|
|00000980| 20 46 41 4c 53 45 20 74 | 6f 20 63 6f 6e 74 69 6e | FALSE t|o contin|
|00000990| 75 65 2e 20 2a 2f 0d 0d | 23 69 66 64 65 66 20 55 |ue. */..|#ifdef U|
|000009a0| 53 45 43 54 42 0d 09 69 | 66 20 28 43 54 42 29 20 |SECTB..i|f (CTB) |
|000009b0| 7b 09 09 09 2f 2a 20 43 | 6f 6d 6d 75 6e 69 63 61 |{.../* C|ommunica|
|000009c0| 74 69 6f 6e 73 20 54 6f | 6f 6c 62 6f 78 20 69 73 |tions To|olbox is|
|000009d0| 20 61 76 61 69 6c 61 62 | 6c 65 20 2a 2f 0d 09 09 | availab|le */...|
|000009e0| 72 65 67 69 73 74 65 72 | 20 43 52 4d 52 65 63 20 |register| CRMRec |
|000009f0| 2a 70 3b 0d 09 09 72 65 | 67 69 73 74 65 72 20 6c |*p;...re|gister l|
|00000a00| 6f 6e 67 20 6f 6c 64 3b | 0d 09 09 72 65 67 69 73 |ong old;|...regis|
|00000a10| 74 65 72 20 43 52 4d 53 | 65 72 69 61 6c 52 65 63 |ter CRMS|erialRec|
|00000a20| 6f 72 64 20 2a 73 65 72 | 3b 0d 09 09 72 65 67 69 |ord *ser|;...regi|
|00000a30| 73 74 65 72 20 73 68 6f | 72 74 20 69 6e 64 65 78 |ster sho|rt index|
|00000a40| 3b 0d 09 09 43 52 4d 52 | 65 63 20 72 3b 0d 0d 09 |;...CRMR|ec r;...|
|00000a50| 09 6d 65 6d 73 65 74 28 | 26 72 2c 20 30 2c 20 73 |.memset(|&r, 0, s|
|00000a60| 69 7a 65 6f 66 28 72 29 | 29 3b 0d 09 09 72 2e 71 |izeof(r)|);...r.q|
|00000a70| 54 79 70 65 20 3d 20 63 | 72 6d 54 79 70 65 3b 0d |Type = c|rmType;.|
|00000a80| 09 09 66 6f 72 20 28 6f | 6c 64 20 3d 20 30 2c 20 |..for (o|ld = 0, |
|00000a90| 69 6e 64 65 78 20 3d 20 | 31 3b 20 3b 20 6f 6c 64 |index = |1; ; old|
|00000aa0| 20 3d 20 70 2d 3e 63 72 | 6d 44 65 76 69 63 65 49 | = p->cr|mDeviceI|
|00000ab0| 44 2c 20 2b 2b 69 6e 64 | 65 78 29 20 7b 0d 09 09 |D, ++ind|ex) {...|
|00000ac0| 09 72 2e 63 72 6d 44 65 | 76 69 63 65 54 79 70 65 |.r.crmDe|viceType|
|00000ad0| 20 3d 20 63 72 6d 53 65 | 72 69 61 6c 44 65 76 69 | = crmSe|rialDevi|
|00000ae0| 63 65 3b 0d 09 09 09 72 | 2e 63 72 6d 44 65 76 69 |ce;....r|.crmDevi|
|00000af0| 63 65 49 44 20 3d 20 6f | 6c 64 3b 0d 09 09 09 69 |ceID = o|ld;....i|
|00000b00| 66 20 28 21 28 70 20 3d | 20 28 43 52 4d 52 65 63 |f (!(p =| (CRMRec|
|00000b10| 20 2a 29 43 52 4d 53 65 | 61 72 63 68 28 28 51 45 | *)CRMSe|arch((QE|
|00000b20| 6c 65 6d 50 74 72 29 28 | 70 20 3d 20 26 72 29 29 |lemPtr)(|p = &r))|
|00000b30| 29 29 0d 09 09 09 09 62 | 72 65 61 6b 3b 0d 09 09 |)).....b|reak;...|
|00000b40| 09 73 65 72 20 3d 20 28 | 43 52 4d 53 65 72 69 61 |.ser = (|CRMSeria|
|00000b50| 6c 52 65 63 6f 72 64 20 | 2a 29 70 2d 3e 63 72 6d |lRecord |*)p->crm|
|00000b60| 41 74 74 72 69 62 75 74 | 65 73 3b 0d 09 09 09 69 |Attribut|es;....i|
|00000b70| 66 20 28 28 2a 20 63 61 | 6c 6c 62 61 63 6b 29 28 |f ((* ca|llback)(|
|00000b80| 69 6e 64 65 78 2c 20 2a | 28 73 65 72 2d 3e 6e 61 |index, *|(ser->na|
|00000b90| 6d 65 29 2c 20 2a 28 73 | 65 72 2d 3e 69 6e 70 75 |me), *(s|er->inpu|
|00000ba0| 74 44 72 69 76 65 72 4e | 61 6d 65 29 2c 0d 09 09 |tDriverN|ame),...|
|00000bb0| 09 09 09 2a 28 73 65 72 | 2d 3e 6f 75 74 70 75 74 |...*(ser|->output|
|00000bc0| 44 72 69 76 65 72 4e 61 | 6d 65 29 29 29 0d 09 09 |DriverNa|me)))...|
|00000bd0| 09 09 62 72 65 61 6b 3b | 09 2f 2a 20 53 74 6f 70 |..break;|./* Stop|
|00000be0| 20 73 65 61 72 63 68 20 | 2a 2f 0d 09 09 7d 0d 09 | search |*/...}..|
|00000bf0| 7d 20 65 6c 73 65 0d 23 | 65 6e 64 69 66 0d 09 7b |} else.#|endif..{|
|00000c00| 09 09 09 09 2f 2a 20 43 | 6f 6d 6d 75 6e 69 63 61 |..../* C|ommunica|
|00000c10| 74 69 6f 6e 73 20 54 6f | 6f 6c 62 6f 78 20 6e 6f |tions To|olbox no|
|00000c20| 74 20 61 76 61 69 6c 61 | 62 6c 65 20 2a 2f 0d 09 |t availa|ble */..|
|00000c30| 09 72 65 67 69 73 74 65 | 72 20 73 68 6f 72 74 20 |.registe|r short |
|00000c40| 69 6e 64 65 78 3b 0d 09 | 09 72 65 67 69 73 74 65 |index;..|.registe|
|00000c50| 72 20 53 45 52 49 41 4c | 4e 41 4d 45 20 2a 70 3b |r SERIAL|NAME *p;|
|00000c60| 0d 0d 09 09 66 6f 72 20 | 28 69 6e 64 65 78 20 3d |....for |(index =|
|00000c70| 20 30 2c 20 70 20 3d 20 | 4e 61 6d 65 73 3b 0d 09 | 0, p = |Names;..|
|00000c80| 09 09 09 69 6e 64 65 78 | 20 3c 20 73 69 7a 65 6f |...index| < sizeo|
|00000c90| 66 28 4e 61 6d 65 73 29 | 2f 73 69 7a 65 6f 66 28 |f(Names)|/sizeof(|
|00000ca0| 53 45 52 49 41 4c 4e 41 | 4d 45 29 3b 0d 09 09 09 |SERIALNA|ME);....|
|00000cb0| 09 2b 2b 69 6e 64 65 78 | 2c 20 2b 2b 70 29 0d 09 |.++index|, ++p)..|
|00000cc0| 09 09 69 66 20 28 28 2a | 20 63 61 6c 6c 62 61 63 |..if ((*| callbac|
|00000cd0| 6b 29 28 69 6e 64 65 78 | 20 2b 20 31 2c 20 70 2d |k)(index| + 1, p-|
|00000ce0| 3e 6e 61 6d 65 2c 20 70 | 2d 3e 69 6e 70 75 74 2c |>name, p|->input,|
|00000cf0| 20 70 2d 3e 6f 75 74 70 | 75 74 29 29 0d 09 09 09 | p->outp|ut))....|
|00000d00| 09 62 72 65 61 6b 3b 09 | 2f 2a 20 53 74 6f 70 20 |.break;.|/* Stop |
|00000d10| 73 65 61 72 63 68 20 2a | 2f 0d 09 7d 0d 7d 0d 0d |search *|/..}.}..|
|00000d20| 2f 2a 20 2d 2d 2d 2d 2d | 20 4f 70 65 6e 20 73 65 |/* -----| Open se|
|00000d30| 72 69 61 6c 20 64 72 69 | 76 65 72 20 2d 2d 2d 2d |rial dri|ver ----|
|00000d40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000d50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000d60| 2d 2d 2d 2d 2d 2d 2d 2d | 20 2a 2f 0d 0d 73 74 61 |--------| */..sta|
|00000d70| 74 69 63 20 73 68 6f 72 | 74 20 4f 70 65 6e 45 72 |tic shor|t OpenEr|
|00000d80| 72 3b 09 09 2f 2a 20 44 | 72 69 76 65 72 20 6f 70 |r;../* D|river op|
|00000d90| 65 6e 20 65 72 72 6f 72 | 20 2a 2f 0d 73 74 61 74 |en error| */.stat|
|00000da0| 69 63 20 42 79 74 65 20 | 2a 4f 70 65 6e 4e 61 6d |ic Byte |*OpenNam|
|00000db0| 65 3b 09 09 2f 2a 20 50 | 6f 72 74 27 73 20 6e 61 |e;../* P|ort's na|
|00000dc0| 6d 65 20 74 6f 20 66 69 | 6e 64 20 2a 2f 0d 0d 73 |me to fi|nd */..s|
|00000dd0| 74 61 74 69 63 20 73 68 | 6f 72 74 20 4f 70 65 6e |tatic sh|ort Open|
|00000de0| 53 65 72 69 61 6c 28 09 | 2f 2a 20 22 63 61 6c 6c |Serial(.|/* "call|
|00000df0| 62 61 63 6b 22 20 66 75 | 6e 63 74 69 6f 6e 20 66 |back" fu|nction f|
|00000e00| 6f 72 20 22 53 65 72 69 | 61 6c 44 65 76 69 63 65 |or "Seri|alDevice|
|00000e10| 22 20 2a 2f 0d 09 73 68 | 6f 72 74 20 69 6e 64 65 |" */..sh|ort inde|
|00000e20| 78 2c 0d 09 42 79 74 65 | 20 2a 6e 61 6d 65 2c 0d |x,..Byte| *name,.|
|00000e30| 09 42 79 74 65 20 2a 69 | 6e 70 75 74 2c 0d 09 42 |.Byte *i|nput,..B|
|00000e40| 79 74 65 20 2a 6f 75 74 | 70 75 74 29 0d 7b 0d 09 |yte *out|put).{..|
|00000e50| 69 66 20 28 21 45 71 75 | 61 6c 53 74 72 69 6e 67 |if (!Equ|alString|
|00000e60| 28 6e 61 6d 65 2c 20 4f | 70 65 6e 4e 61 6d 65 2c |(name, O|penName,|
|00000e70| 20 46 41 4c 53 45 2c 20 | 54 52 55 45 29 29 0d 09 | FALSE, |TRUE))..|
|00000e80| 09 72 65 74 75 72 6e 20 | 46 41 4c 53 45 3b 09 09 |.return |FALSE;..|
|00000e90| 2f 2a 20 4e 6f 74 20 74 | 68 65 20 6e 61 6d 65 20 |/* Not t|he name |
|00000ea0| 77 65 20 77 61 6e 74 2c | 20 63 6f 6e 74 69 6e 75 |we want,| continu|
|00000eb0| 65 20 2a 2f 0d 09 69 66 | 20 28 4f 70 65 6e 45 72 |e */..if| (OpenEr|
|00000ec0| 72 20 3d 20 4f 70 65 6e | 44 72 69 76 65 72 28 69 |r = Open|Driver(i|
|00000ed0| 6e 70 75 74 2c 20 26 49 | 4e 50 55 54 29 29 0d 09 |nput, &I|NPUT))..|
|00000ee0| 09 72 65 74 75 72 6e 20 | 54 52 55 45 3b 09 09 2f |.return |TRUE;../|
|00000ef0| 2a 20 4e 61 6d 65 20 6f | 6b 2c 20 62 75 74 20 65 |* Name o|k, but e|
|00000f00| 72 72 6f 72 20 64 75 72 | 69 6e 67 20 6f 70 65 6e |rror dur|ing open|
|00000f10| 2c 20 73 74 6f 70 20 2a | 2f 0d 09 69 66 20 28 4f |, stop *|/..if (O|
|00000f20| 70 65 6e 45 72 72 20 3d | 20 4f 70 65 6e 44 72 69 |penErr =| OpenDri|
|00000f30| 76 65 72 28 6f 75 74 70 | 75 74 2c 20 26 4f 55 54 |ver(outp|ut, &OUT|
|00000f40| 50 55 54 29 29 20 7b 0d | 09 09 43 6c 6f 73 65 44 |PUT)) {.|..CloseD|
|00000f50| 72 69 76 65 72 28 49 4e | 50 55 54 29 3b 09 2f 2a |river(IN|PUT);./*|
|00000f60| 20 4f 75 74 70 75 74 20 | 6f 70 65 6e 20 65 72 72 | Output |open err|
|00000f70| 6f 72 20 2a 2f 0d 09 09 | 49 4e 50 55 54 20 3d 20 |or */...|INPUT = |
|00000f80| 4f 55 54 50 55 54 20 3d | 20 30 3b 0d 09 7d 20 65 |OUTPUT =| 0;..} e|
|00000f90| 6c 73 65 20 7b 0d 09 09 | 44 54 52 20 3d 20 54 52 |lse {...|DTR = TR|
|00000fa0| 55 45 3b 09 09 09 2f 2a | 20 49 6e 70 75 74 20 26 |UE;.../*| Input &|
|00000fb0| 20 6f 75 74 70 75 74 20 | 6f 70 65 6e 20 6f 6b 2c | output |open ok,|
|00000fc0| 20 44 54 52 20 61 73 73 | 65 72 74 65 64 20 2a 2f | DTR ass|erted */|
|00000fd0| 0d 09 09 50 4f 52 54 4e | 4f 20 3d 20 69 6e 64 65 |...PORTN|O = inde|
|00000fe0| 78 3b 0d 09 7d 0d 09 72 | 65 74 75 72 6e 20 54 52 |x;..}..r|eturn TR|
|00000ff0| 55 45 3b 09 09 09 2f 2a | 20 53 74 6f 70 2c 20 70 |UE;.../*| Stop, p|
|00001000| 6f 72 74 20 77 61 73 20 | 66 6f 75 6e 64 20 2a 2f |ort was |found */|
|00001010| 0d 7d 0d 0d 73 74 61 74 | 69 63 20 73 68 6f 72 74 |.}..stat|ic short|
|00001020| 20 4f 70 65 6e 53 65 72 | 69 61 6c 44 72 69 76 65 | OpenSer|ialDrive|
|00001030| 72 28 0d 09 42 79 74 65 | 20 2a 70 6f 72 74 29 09 |r(..Byte| *port).|
|00001040| 09 09 09 2f 2a 20 50 6f | 72 74 27 73 20 6e 61 6d |.../* Po|rt's nam|
|00001050| 65 20 28 65 2e 67 2e 20 | 22 5c 70 4d 6f 64 65 6d |e (e.g. |"\pModem|
|00001060| 20 50 6f 72 74 22 29 20 | 2a 2f 0d 7b 0d 09 4f 70 | Port") |*/.{..Op|
|00001070| 65 6e 4e 61 6d 65 20 3d | 20 70 6f 72 74 3b 0d 09 |enName =| port;..|
|00001080| 4f 70 65 6e 45 72 72 20 | 3d 20 31 3b 09 09 09 2f |OpenErr |= 1;.../|
|00001090| 2a 20 49 66 20 6e 6f 20 | 70 6f 72 74 20 77 69 74 |* If no |port wit|
|000010a0| 68 20 74 68 69 73 20 6e | 61 6d 65 20 69 73 20 66 |h this n|ame is f|
|000010b0| 6f 75 6e 64 20 2a 2f 0d | 09 44 54 52 20 3d 20 46 |ound */.|.DTR = F|
|000010c0| 41 4c 53 45 3b 09 09 09 | 2f 2a 20 44 54 52 20 6e |ALSE;...|/* DTR n|
|000010d0| 65 67 61 74 65 64 20 75 | 6e 74 69 6c 20 70 6f 72 |egated u|ntil por|
|000010e0| 74 20 69 73 20 6f 70 65 | 6e 20 2a 2f 0d 09 50 4f |t is ope|n */..PO|
|000010f0| 52 54 4e 4f 20 3d 20 30 | 3b 0d 09 53 65 72 69 61 |RTNO = 0|;..Seria|
|00001100| 6c 44 65 76 69 63 65 28 | 28 50 72 6f 63 50 74 72 |lDevice(|(ProcPtr|
|00001110| 29 4f 70 65 6e 53 65 72 | 69 61 6c 29 3b 0d 09 72 |)OpenSer|ial);..r|
|00001120| 65 74 75 72 6e 20 4f 70 | 65 6e 45 72 72 3b 0d 7d |eturn Op|enErr;.}|
|00001130| 0d 0d 2f 2a 20 2d 2d 2d | 2d 2d 20 43 61 6c 63 75 |../* ---|-- Calcu|
|00001140| 6c 61 74 65 20 73 65 72 | 69 61 6c 20 64 75 72 61 |late ser|ial dura|
|00001150| 74 69 6f 6e 20 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |tion ---|--------|
|00001160| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001170| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 20 2a 2f 0d 0d 2f |--------|-- */../|
|00001180| 2a 09 4e 6f 74 65 3a 20 | 75 73 69 6e 67 20 73 70 |*.Note: |using sp|
|00001190| 65 65 64 20 63 68 61 6e | 67 69 6e 67 20 6d 6f 64 |eed chan|ging mod|
|000011a0| 65 6d 73 20 28 77 68 69 | 6c 65 20 75 73 69 6e 67 |ems (whi|le using|
|000011b0| 20 4d 4e 50 34 20 6f 72 | 20 4d 4e 50 35 29 20 74 | MNP4 or| MNP5) t|
|000011c0| 68 69 73 0d 09 6c 65 61 | 64 73 20 74 6f 20 77 72 |his..lea|ds to wr|
|000011d0| 6f 6e 67 20 72 65 73 75 | 6c 74 73 2e 2e 2e 20 2a |ong resu|lts... *|
|000011e0| 2f 0d 0d 6c 6f 6e 67 20 | 53 65 72 69 61 6c 44 75 |/..long |SerialDu|
|000011f0| 72 61 74 69 6f 6e 28 0d | 09 72 65 67 69 73 74 65 |ration(.|.registe|
|00001200| 72 20 73 68 6f 72 74 20 | 73 65 74 75 70 2c 09 2f |r short |setup,./|
|00001210| 2a 20 53 65 72 69 61 6c | 20 63 68 69 70 20 73 65 |* Serial| chip se|
|00001220| 74 75 70 20 77 6f 72 64 | 20 2a 2f 0d 09 72 65 67 |tup word| */..reg|
|00001230| 69 73 74 65 72 20 73 68 | 6f 72 74 20 62 79 74 65 |ister sh|ort byte|
|00001240| 73 29 09 2f 2a 20 4e 75 | 6d 62 65 72 20 6f 66 20 |s)./* Nu|mber of |
|00001250| 62 79 74 65 73 20 69 6e | 20 62 75 66 66 65 72 20 |bytes in| buffer |
|00001260| 2a 2f 0d 7b 0d 09 72 65 | 67 69 73 74 65 72 20 73 |*/.{..re|gister s|
|00001270| 68 6f 72 74 20 62 69 74 | 73 3b 09 2f 2a 20 42 69 |hort bit|s;./* Bi|
|00001280| 74 73 20 70 65 72 20 62 | 79 74 65 73 20 2a 2f 0d |ts per b|ytes */.|
|00001290| 09 72 65 67 69 73 74 65 | 72 20 6c 6f 6e 67 20 62 |.registe|r long b|
|000012a0| 70 73 3b 09 09 2f 2a 20 | 42 69 74 73 20 70 65 72 |ps;../* |Bits per|
|000012b0| 20 73 65 63 6f 6e 64 20 | 28 2a 31 30 30 29 20 2a | second |(*100) *|
|000012c0| 2f 0d 09 73 68 6f 72 74 | 20 62 61 75 64 2c 20 64 |/..short| baud, d|
|000012d0| 61 74 61 2c 20 70 61 72 | 69 74 79 2c 20 73 74 6f |ata, par|ity, sto|
|000012e0| 70 3b 0d 09 73 74 61 74 | 69 63 20 6c 6f 6e 67 20 |p;..stat|ic long |
|000012f0| 62 5b 5d 20 3d 20 7b 09 | 09 2f 2a 20 42 61 75 64 |b[] = {.|./* Baud|
|00001300| 20 2a 20 31 30 30 20 2a | 2f 0d 09 09 33 30 30 30 | * 100 *|/...3000|
|00001310| 30 2c 20 36 30 30 30 30 | 2c 20 31 32 30 30 30 30 |0, 60000|, 120000|
|00001320| 2c 20 32 34 30 30 30 30 | 2c 20 34 38 30 30 30 30 |, 240000|, 480000|
|00001330| 2c 0d 09 09 39 36 30 30 | 30 30 2c 20 31 39 32 30 |,...9600|00, 1920|
|00001340| 30 30 30 2c 20 33 38 34 | 30 30 30 30 2c 20 35 37 |000, 384|0000, 57|
|00001350| 36 30 30 30 30 20 7d 3b | 0d 0d 09 53 65 72 69 61 |60000 };|...Seria|
|00001360| 6c 47 65 74 53 65 74 75 | 70 28 73 65 74 75 70 2c |lGetSetu|p(setup,|
|00001370| 20 26 62 61 75 64 2c 20 | 26 64 61 74 61 2c 20 26 | &baud, |&data, &|
|00001380| 70 61 72 69 74 79 2c 20 | 26 73 74 6f 70 29 3b 0d |parity, |&stop);.|
|00001390| 09 62 69 74 73 20 3d 0d | 09 09 31 20 2b 09 09 09 |.bits =.|..1 +...|
|000013a0| 09 09 2f 2a 20 53 74 61 | 72 74 20 62 69 74 20 2a |../* Sta|rt bit *|
|000013b0| 2f 0d 09 09 37 20 2b 20 | 64 61 74 61 20 2b 09 09 |/...7 + |data +..|
|000013c0| 09 2f 2a 20 44 61 74 61 | 20 62 69 74 73 20 28 37 |./* Data| bits (7|
|000013d0| 20 6f 72 20 38 29 20 2a | 2f 0d 09 09 28 70 61 72 | or 8) *|/...(par|
|000013e0| 69 74 79 20 3f 20 31 20 | 3a 20 30 29 20 2b 09 2f |ity ? 1 |: 0) +./|
|000013f0| 2a 20 50 61 72 69 74 79 | 20 62 69 74 20 28 30 20 |* Parity| bit (0 |
|00001400| 6f 72 20 31 29 20 2a 2f | 0d 09 09 31 20 2b 20 73 |or 1) */|...1 + s|
|00001410| 74 6f 70 3b 09 09 09 2f | 2a 20 53 74 6f 70 20 62 |top;.../|* Stop b|
|00001420| 69 74 73 20 28 31 20 6f | 72 20 32 29 20 2a 2f 0d |its (1 o|r 2) */.|
|00001430| 09 62 70 73 20 3d 20 62 | 5b 62 61 75 64 5d 3b 0d |.bps = b|[baud];.|
|00001440| 09 72 65 74 75 72 6e 20 | 28 28 6c 6f 6e 67 29 62 |.return |((long)b|
|00001450| 69 74 73 20 2a 20 28 6c | 6f 6e 67 29 62 79 74 65 |its * (l|ong)byte|
|00001460| 73 20 2a 20 36 30 31 35 | 4c 29 20 2f 20 62 70 73 |s * 6015|L) / bps|
|00001470| 3b 0d 7d 0d 0d 2f 2a 20 | 2d 2d 2d 2d 2d 20 53 65 |;.}../* |----- Se|
|00001480| 74 20 73 65 72 69 61 6c | 20 70 61 72 61 6d 65 74 |t serial| paramet|
|00001490| 65 72 73 20 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ers ----|--------|
|000014a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000014b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 20 2a 2f |--------|----- */|
|000014c0| 0d 0d 76 6f 69 64 20 53 | 65 72 69 61 6c 52 65 73 |..void S|erialRes|
|000014d0| 65 74 28 0d 09 72 65 67 | 69 73 74 65 72 20 73 68 |et(..reg|ister sh|
|000014e0| 6f 72 74 20 73 65 74 75 | 70 29 09 2f 2a 20 53 65 |ort setu|p)./* Se|
|000014f0| 72 69 61 6c 20 63 68 69 | 70 20 73 65 74 75 70 20 |rial chi|p setup |
|00001500| 77 6f 72 64 20 2a 2f 0d | 7b 0d 09 53 65 72 52 65 |word */.|{..SerRe|
|00001510| 73 65 74 28 4f 55 54 50 | 55 54 2c 20 73 65 74 75 |set(OUTP|UT, setu|
|00001520| 70 29 3b 0d 09 53 65 72 | 52 65 73 65 74 28 49 4e |p);..Ser|Reset(IN|
|00001530| 50 55 54 2c 20 73 65 74 | 75 70 29 3b 0d 7d 0d 0d |PUT, set|up);.}..|
|00001540| 2f 2a 20 2d 2d 2d 2d 2d | 20 53 65 74 20 74 6f 20 |/* -----| Set to |
|00001550| 38 20 64 61 74 61 20 62 | 69 74 73 20 61 6e 64 20 |8 data b|its and |
|00001560| 6e 6f 20 70 61 72 69 74 | 79 20 28 62 69 6e 61 72 |no parit|y (binar|
|00001570| 79 20 66 69 6c 65 20 74 | 72 61 6e 73 66 65 72 73 |y file t|ransfers|
|00001580| 29 20 2d 2d 2d 2d 2d 2d | 20 2a 2f 0d 0d 76 6f 69 |) ------| */..voi|
|00001590| 64 20 53 65 72 69 61 6c | 42 69 6e 61 72 79 28 0d |d Serial|Binary(.|
|000015a0| 09 72 65 67 69 73 74 65 | 72 20 73 68 6f 72 74 20 |.registe|r short |
|000015b0| 73 65 74 75 70 29 09 2f | 2a 20 53 65 72 69 61 6c |setup)./|* Serial|
|000015c0| 20 63 68 69 70 20 73 65 | 74 75 70 20 77 6f 72 64 | chip se|tup word|
|000015d0| 20 2a 2f 0d 7b 0d 09 2f | 2a 20 50 61 72 69 74 79 | */.{../|* Parity|
|000015e0| 20 20 20 3a 20 62 69 74 | 73 20 31 33 20 2d 20 31 | : bit|s 13 - 1|
|000015f0| 32 20 28 30 2c 20 31 2c | 20 32 2c 20 33 20 66 6f |2 (0, 1,| 2, 3 fo|
|00001600| 72 20 6e 6f 2c 20 6f 64 | 64 2c 20 6e 6f 2c 20 65 |r no, od|d, no, e|
|00001610| 76 65 6e 29 20 2a 2f 0d | 09 2f 2a 20 44 61 74 61 |ven) */.|./* Data|
|00001620| 20 62 69 74 73 3a 20 62 | 69 74 73 20 31 31 20 2d | bits: b|its 11 -|
|00001630| 20 31 30 20 28 30 2c 20 | 31 2c 20 32 2c 20 33 20 | 10 (0, |1, 2, 3 |
|00001640| 66 6f 72 20 35 2c 20 37 | 2c 20 36 2c 20 38 29 20 |for 5, 7|, 6, 8) |
|00001650| 2a 2f 0d 09 2f 2a 20 2d | 2d 30 30 20 31 31 2d 2d |*/../* -|-00 11--|
|00001660| 20 2d 2d 2d 2d 20 2d 2d | 2d 2d 20 2a 2f 0d 0d 09 | ---- --|-- */...|
|00001670| 53 65 72 69 61 6c 52 65 | 73 65 74 28 28 73 65 74 |SerialRe|set((set|
|00001680| 75 70 20 26 20 30 78 43 | 33 46 46 29 20 7c 20 30 |up & 0xC|3FF) | 0|
|00001690| 78 30 43 30 30 29 3b 0d | 7d 0d 0d 2f 2a 20 2d 2d |x0C00);.|}../* --|
|000016a0| 2d 2d 2d 20 53 65 65 20 | 69 66 20 73 65 74 20 74 |--- See |if set t|
|000016b0| 6f 20 38 20 64 61 74 61 | 20 62 69 74 73 20 2d 2d |o 8 data| bits --|
|000016c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000016d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000016e0| 2d 2d 2d 20 2a 2f 0d 0d | 42 6f 6f 6c 65 61 6e 20 |--- */..|Boolean |
|000016f0| 53 65 72 69 61 6c 38 42 | 69 74 73 28 0d 09 72 65 |Serial8B|its(..re|
|00001700| 67 69 73 74 65 72 20 73 | 68 6f 72 74 20 73 65 74 |gister s|hort set|
|00001710| 75 70 29 09 2f 2a 20 53 | 65 72 69 61 6c 20 63 68 |up)./* S|erial ch|
|00001720| 69 70 20 73 65 74 75 70 | 20 77 6f 72 64 20 2a 2f |ip setup| word */|
|00001730| 0d 7b 0d 09 2f 2a 20 50 | 61 72 69 74 79 20 20 20 |.{../* P|arity |
|00001740| 3a 20 62 69 74 73 20 31 | 33 20 2d 20 31 32 20 28 |: bits 1|3 - 12 (|
|00001750| 30 2c 20 31 2c 20 32 2c | 20 33 20 66 6f 72 20 6e |0, 1, 2,| 3 for n|
|00001760| 6f 2c 20 6f 64 64 2c 20 | 6e 6f 2c 20 65 76 65 6e |o, odd, |no, even|
|00001770| 29 20 2a 2f 0d 09 2f 2a | 20 44 61 74 61 20 62 69 |) */../*| Data bi|
|00001780| 74 73 3a 20 62 69 74 73 | 20 31 31 20 2d 20 31 30 |ts: bits| 11 - 10|
|00001790| 20 28 30 2c 20 31 2c 20 | 32 2c 20 33 20 66 6f 72 | (0, 1, |2, 3 for|
|000017a0| 20 35 2c 20 37 2c 20 36 | 2c 20 38 29 20 2a 2f 0d | 5, 7, 6|, 8) */.|
|000017b0| 09 2f 2a 20 2d 2d 30 30 | 20 31 31 2d 2d 20 2d 2d |./* --00| 11-- --|
|000017c0| 2d 2d 20 2d 2d 2d 2d 20 | 2a 2f 0d 0d 09 72 65 74 |-- ---- |*/...ret|
|000017d0| 75 72 6e 20 28 73 65 74 | 75 70 20 26 20 30 78 30 |urn (set|up & 0x0|
|000017e0| 43 30 30 29 20 3d 3d 20 | 30 78 30 43 30 30 3b 0d |C00) == |0x0C00;.|
|000017f0| 7d 0d 0d 2f 2a 20 2d 2d | 2d 2d 2d 20 44 54 52 20 |}../* --|--- DTR |
|00001800| 6f 6e 20 65 78 69 74 2c | 20 64 72 6f 70 20 6f 72 |on exit,| drop or|
|00001810| 20 6e 6f 20 64 72 6f 70 | 20 2d 2d 2d 2d 2d 2d 2d | no drop| -------|
|00001820| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001830| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 20 2a 2f 0d 0d |--------|--- */..|
|00001840| 76 6f 69 64 20 53 65 72 | 69 61 6c 44 72 6f 70 44 |void Ser|ialDropD|
|00001850| 54 52 28 72 65 67 69 73 | 74 65 72 20 42 6f 6f 6c |TR(regis|ter Bool|
|00001860| 65 61 6e 20 6e 6f 64 72 | 6f 70 29 0d 7b 0d 09 43 |ean nodr|op).{..C|
|00001870| 6e 74 72 6c 50 61 72 61 | 6d 20 63 3b 0d 0d 09 69 |ntrlPara|m c;...i|
|00001880| 66 20 28 21 4f 55 54 50 | 55 54 29 0d 09 09 72 65 |f (!OUTP|UT)...re|
|00001890| 74 75 72 6e 3b 0d 09 43 | 52 45 46 4e 55 4d 28 63 |turn;..C|REFNUM(c|
|000018a0| 29 20 3d 20 4f 55 54 50 | 55 54 3b 0d 09 63 2e 63 |) = OUTP|UT;..c.c|
|000018b0| 73 50 61 72 61 6d 5b 30 | 5d 20 3d 20 6e 6f 64 72 |sParam[0|] = nodr|
|000018c0| 6f 70 20 3f 20 30 78 38 | 30 30 30 20 3a 20 30 78 |op ? 0x8|000 : 0x|
|000018d0| 30 30 30 30 3b 0d 09 63 | 2e 63 73 43 6f 64 65 20 |0000;..c|.csCode |
|000018e0| 3d 20 31 36 3b 0d 09 50 | 42 43 6f 6e 74 72 6f 6c |= 16;..P|BControl|
|000018f0| 28 28 50 61 72 6d 42 6c | 6b 50 74 72 29 26 63 2c |((ParmBl|kPtr)&c,|
|00001900| 20 46 41 4c 53 45 29 3b | 0d 7d 0d 0d 2f 2a 20 2d | FALSE);|.}../* -|
|00001910| 2d 2d 2d 2d 20 53 65 74 | 20 73 65 72 69 61 6c 20 |---- Set| serial |
|00001920| 68 61 6e 64 73 68 61 6b | 65 20 2d 2d 2d 2d 2d 2d |handshak|e ------|
|00001930| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001940| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001950| 2d 2d 2d 2d 20 2a 2f 0d | 0d 76 6f 69 64 20 53 65 |---- */.|.void Se|
|00001960| 72 69 61 6c 48 61 6e 64 | 73 68 61 6b 65 28 0d 09 |rialHand|shake(..|
|00001970| 72 65 67 69 73 74 65 72 | 20 73 68 6f 72 74 20 68 |register| short h|
|00001980| 6f 77 29 09 09 2f 2a 20 | 30 3d 6e 6f 6e 65 2c 31 |ow)../* |0=none,1|
|00001990| 3d 58 4f 4e 2f 58 4f 46 | 46 2c 32 3d 43 54 53 2c |=XON/XOF|F,2=CTS,|
|000019a0| 33 3d 44 54 52 2c 34 3d | 43 54 53 2f 44 54 52 20 |3=DTR,4=|CTS/DTR |
|000019b0| 2a 2f 0d 7b 0d 09 43 6e | 74 72 6c 50 61 72 61 6d |*/.{..Cn|trlParam|
|000019c0| 20 63 3b 0d 09 72 65 67 | 69 73 74 65 72 20 53 65 | c;..reg|ister Se|
|000019d0| 72 53 68 6b 20 2a 68 61 | 6e 64 73 68 61 6b 65 3b |rShk *ha|ndshake;|
|000019e0| 0d 0d 09 69 66 20 28 21 | 4f 55 54 50 55 54 29 0d |...if (!|OUTPUT).|
|000019f0| 09 09 72 65 74 75 72 6e | 3b 0d 09 43 52 45 46 4e |..return|;..CREFN|
|00001a00| 55 4d 28 63 29 20 3d 20 | 4f 55 54 50 55 54 3b 0d |UM(c) = |OUTPUT;.|
|00001a10| 09 63 2e 63 73 43 6f 64 | 65 20 3d 20 31 34 3b 09 |.c.csCod|e = 14;.|
|00001a20| 09 09 09 2f 2a 20 53 65 | 72 48 53 68 61 6b 65 20 |.../* Se|rHShake |
|00001a30| 2a 2f 0d 09 68 61 6e 64 | 73 68 61 6b 65 20 3d 20 |*/..hand|shake = |
|00001a40| 28 53 65 72 53 68 6b 20 | 2a 29 26 63 2e 63 73 50 |(SerShk |*)&c.csP|
|00001a50| 61 72 61 6d 5b 30 5d 3b | 0d 09 68 61 6e 64 73 68 |aram[0];|..handsh|
|00001a60| 61 6b 65 2d 3e 66 58 4f | 6e 20 3d 20 30 3b 09 09 |ake->fXO|n = 0;..|
|00001a70| 2f 2a 20 6e 6f 20 58 4f | 4e 2f 58 4f 46 46 20 6f |/* no XO|N/XOFF o|
|00001a80| 75 74 70 75 74 20 66 6c | 6f 77 20 63 6f 6e 74 72 |utput fl|ow contr|
|00001a90| 6f 6c 20 2a 2f 0d 09 68 | 61 6e 64 73 68 61 6b 65 |ol */..h|andshake|
|00001aa0| 2d 3e 66 43 54 53 20 3d | 20 30 3b 09 09 2f 2a 20 |->fCTS =| 0;../* |
|00001ab0| 6e 6f 20 43 54 53 20 28 | 69 6e 70 75 74 29 20 68 |no CTS (|input) h|
|00001ac0| 61 72 64 77 61 72 65 20 | 68 61 6e 64 73 68 61 6b |ardware |handshak|
|00001ad0| 65 20 2a 2f 0d 09 68 61 | 6e 64 73 68 61 6b 65 2d |e */..ha|ndshake-|
|00001ae0| 3e 78 4f 6e 20 20 3d 20 | 30 78 30 30 3b 09 09 2f |>xOn = |0x00;../|
|00001af0| 2a 20 58 4f 4e 20 63 68 | 61 72 61 63 74 65 72 20 |* XON ch|aracter |
|00001b00| 2a 2f 0d 09 68 61 6e 64 | 73 68 61 6b 65 2d 3e 78 |*/..hand|shake->x|
|00001b10| 4f 66 66 20 3d 20 30 78 | 30 30 3b 09 09 2f 2a 20 |Off = 0x|00;../* |
|00001b20| 58 4f 46 46 20 63 68 61 | 72 61 63 74 65 72 20 2a |XOFF cha|racter *|
|00001b30| 2f 0d 09 68 61 6e 64 73 | 68 61 6b 65 2d 3e 65 72 |/..hands|hake->er|
|00001b40| 72 73 20 3d 20 30 3b 09 | 09 2f 2a 20 49 67 6e 6f |rs = 0;.|./* Igno|
|00001b50| 72 65 20 69 6e 70 75 74 | 20 65 72 72 6f 72 73 20 |re input| errors |
|00001b60| 2a 2f 0d 09 68 61 6e 64 | 73 68 61 6b 65 2d 3e 65 |*/..hand|shake->e|
|00001b70| 76 74 73 20 3d 20 30 3b | 09 09 2f 2a 20 4e 6f 20 |vts = 0;|../* No |
|00001b80| 64 65 76 69 63 65 20 64 | 72 69 76 65 72 20 65 76 |device d|river ev|
|00001b90| 65 6e 74 73 20 2a 2f 0d | 09 68 61 6e 64 73 68 61 |ents */.|.handsha|
|00001ba0| 6b 65 2d 3e 66 49 6e 58 | 20 3d 20 30 3b 09 09 2f |ke->fInX| = 0;../|
|00001bb0| 2a 20 6e 6f 20 58 4f 4e | 2f 58 4f 46 46 20 69 6e |* no XON|/XOFF in|
|00001bc0| 70 75 74 20 66 6c 6f 77 | 20 63 6f 6e 74 72 6f 6c |put flow| control|
|00001bd0| 20 2a 2f 0d 09 68 61 6e | 64 73 68 61 6b 65 2d 3e | */..han|dshake->|
|00001be0| 66 44 54 52 20 3d 20 30 | 3b 09 09 2f 2a 20 6e 6f |fDTR = 0|;../* no|
|00001bf0| 20 44 54 52 20 28 6f 75 | 74 70 75 74 29 20 68 61 | DTR (ou|tput) ha|
|00001c00| 72 64 77 61 72 65 20 68 | 61 6e 64 73 68 61 6b 65 |rdware h|andshake|
|00001c10| 20 2a 2f 0d 09 73 77 69 | 74 63 68 28 68 6f 77 29 | */..swi|tch(how)|
|00001c20| 20 7b 0d 09 09 63 61 73 | 65 20 31 3a 09 09 2f 2a | {...cas|e 1:../*|
|00001c30| 20 58 4f 4e 2f 58 4f 46 | 46 20 2a 2f 0d 09 09 09 | XON/XOF|F */....|
|00001c40| 68 61 6e 64 73 68 61 6b | 65 2d 3e 66 58 4f 6e 20 |handshak|e->fXOn |
|00001c50| 3d 20 31 3b 09 2f 2a 20 | 58 4f 4e 2f 58 4f 46 46 |= 1;./* |XON/XOFF|
|00001c60| 20 6f 75 74 70 75 74 20 | 66 6c 6f 77 20 63 6f 6e | output |flow con|
|00001c70| 74 72 6f 6c 20 2a 2f 0d | 09 09 09 68 61 6e 64 73 |trol */.|...hands|
|00001c80| 68 61 6b 65 2d 3e 78 4f | 6e 20 20 3d 20 30 78 31 |hake->xO|n = 0x1|
|00001c90| 31 3b 09 2f 2a 20 58 4f | 4e 20 63 68 61 72 61 63 |1;./* XO|N charac|
|00001ca0| 74 65 72 20 28 63 74 72 | 6c 2d 51 29 20 2a 2f 0d |ter (ctr|l-Q) */.|
|00001cb0| 09 09 09 68 61 6e 64 73 | 68 61 6b 65 2d 3e 78 4f |...hands|hake->xO|
|00001cc0| 66 66 20 3d 20 30 78 31 | 33 3b 09 2f 2a 20 58 4f |ff = 0x1|3;./* XO|
|00001cd0| 46 46 20 63 68 61 72 61 | 63 74 65 72 20 28 63 74 |FF chara|cter (ct|
|00001ce0| 72 6c 2d 53 29 20 2a 2f | 0d 09 09 09 62 72 65 61 |rl-S) */|....brea|
|00001cf0| 6b 3b 0d 09 09 63 61 73 | 65 20 32 3a 09 09 2f 2a |k;...cas|e 2:../*|
|00001d00| 20 43 54 53 20 2a 2f 0d | 09 09 09 68 61 6e 64 73 | CTS */.|...hands|
|00001d10| 68 61 6b 65 2d 3e 66 43 | 54 53 20 3d 20 31 3b 09 |hake->fC|TS = 1;.|
|00001d20| 2f 2a 20 43 54 53 20 28 | 69 6e 70 75 74 29 20 68 |/* CTS (|input) h|
|00001d30| 61 72 64 77 61 72 65 20 | 68 61 6e 64 73 68 61 6b |ardware |handshak|
|00001d40| 65 20 2a 2f 0d 09 09 09 | 62 72 65 61 6b 3b 0d 09 |e */....|break;..|
|00001d50| 09 63 61 73 65 20 33 3a | 09 09 2f 2a 20 44 54 52 |.case 3:|../* DTR|
|00001d60| 20 2a 2f 0d 09 09 09 68 | 61 6e 64 73 68 61 6b 65 | */....h|andshake|
|00001d70| 2d 3e 66 44 54 52 20 3d | 20 31 3b 09 2f 2a 20 44 |->fDTR =| 1;./* D|
|00001d80| 54 52 20 28 6f 75 74 70 | 75 74 29 20 68 61 72 64 |TR (outp|ut) hard|
|00001d90| 77 61 72 65 20 68 61 6e | 64 73 68 61 6b 65 20 2a |ware han|dshake *|
|00001da0| 2f 0d 09 09 09 62 72 65 | 61 6b 3b 0d 09 09 63 61 |/....bre|ak;...ca|
|00001db0| 73 65 20 34 3a 09 09 2f | 2a 20 43 54 53 2f 44 54 |se 4:../|* CTS/DT|
|00001dc0| 52 20 2a 2f 0d 09 09 09 | 68 61 6e 64 73 68 61 6b |R */....|handshak|
|00001dd0| 65 2d 3e 66 43 54 53 20 | 3d 20 68 61 6e 64 73 68 |e->fCTS |= handsh|
|00001de0| 61 6b 65 2d 3e 66 44 54 | 52 20 3d 20 31 3b 0d 09 |ake->fDT|R = 1;..|
|00001df0| 09 09 62 72 65 61 6b 3b | 0d 09 7d 0d 09 50 42 43 |..break;|..}..PBC|
|00001e00| 6f 6e 74 72 6f 6c 28 28 | 50 61 72 6d 42 6c 6b 50 |ontrol((|ParmBlkP|
|00001e10| 74 72 29 26 63 2c 20 46 | 41 4c 53 45 29 3b 0d 7d |tr)&c, F|ALSE);.}|
|00001e20| 0d 0d 2f 2a 20 2d 2d 2d | 2d 2d 20 47 65 74 20 73 |../* ---|-- Get s|
|00001e30| 65 72 69 61 6c 20 70 6f | 72 74 20 73 65 74 75 70 |erial po|rt setup|
|00001e40| 20 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d | -------|--------|
|00001e50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001e60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 20 2a 2f 0d 0d 73 |--------|-- */..s|
|00001e70| 68 6f 72 74 20 53 65 72 | 69 61 6c 47 65 74 53 65 |hort Ser|ialGetSe|
|00001e80| 74 75 70 28 0d 09 72 65 | 67 69 73 74 65 72 20 73 |tup(..re|gister s|
|00001e90| 68 6f 72 74 20 73 65 74 | 75 70 2c 09 2f 2a 20 53 |hort set|up,./* S|
|00001ea0| 65 72 69 61 6c 20 63 68 | 69 70 20 73 65 74 75 70 |erial ch|ip setup|
|00001eb0| 20 77 6f 72 64 20 2a 2f | 0d 09 73 68 6f 72 74 20 | word */|..short |
|00001ec0| 2a 62 61 75 64 2c 09 09 | 09 2f 2a 20 30 3d 33 30 |*baud,..|./* 0=30|
|00001ed0| 30 20 42 61 75 64 20 2e | 2e 2e 20 2a 2f 0d 09 73 |0 Baud .|.. */..s|
|00001ee0| 68 6f 72 74 20 2a 64 61 | 74 61 2c 09 09 09 2f 2a |hort *da|ta,.../*|
|00001ef0| 20 30 3d 37 20 62 69 74 | 73 20 2e 2e 2e 20 2a 2f | 0=7 bit|s ... */|
|00001f00| 0d 09 73 68 6f 72 74 20 | 2a 70 61 72 69 74 79 2c |..short |*parity,|
|00001f10| 09 09 09 2f 2a 20 30 3d | 6e 6f 6e 65 20 2e 2e 2e |.../* 0=|none ...|
|00001f20| 20 2a 2f 0d 09 73 68 6f | 72 74 20 2a 73 74 6f 70 | */..sho|rt *stop|
|00001f30| 29 09 09 09 2f 2a 20 30 | 3d 31 20 73 74 6f 70 20 |).../* 0|=1 stop |
|00001f40| 62 69 74 73 20 2e 2e 2e | 20 2a 2f 0d 7b 0d 09 72 |bits ...| */.{..r|
|00001f50| 65 67 69 73 74 65 72 20 | 73 68 6f 72 74 20 69 3b |egister |short i;|
|00001f60| 0d 09 72 65 67 69 73 74 | 65 72 20 73 68 6f 72 74 |..regist|er short|
|00001f70| 20 76 3b 0d 0d 09 2a 62 | 61 75 64 20 3d 20 2a 64 | v;...*b|aud = *d|
|00001f80| 61 74 61 20 3d 20 2a 70 | 61 72 69 74 79 20 3d 20 |ata = *p|arity = |
|00001f90| 2a 73 74 6f 70 20 3d 20 | 30 3b 0d 0d 09 76 20 3d |*stop = |0;...v =|
|00001fa0| 20 73 65 74 75 70 20 26 | 20 30 78 30 33 46 46 3b | setup &| 0x03FF;|
|00001fb0| 09 09 09 09 09 2f 2a 20 | 42 61 75 64 20 72 61 74 |...../* |Baud rat|
|00001fc0| 65 3a 20 62 69 74 73 20 | 39 20 2d 20 30 20 2a 2f |e: bits |9 - 0 */|
|00001fd0| 0d 09 66 6f 72 20 28 69 | 20 3d 20 30 3b 20 69 20 |..for (i| = 0; i |
|00001fe0| 3c 20 73 69 7a 65 6f 66 | 28 42 61 75 64 29 2f 73 |< sizeof|(Baud)/s|
|00001ff0| 69 7a 65 6f 66 28 73 68 | 6f 72 74 29 3b 20 69 2b |izeof(sh|ort); i+|
|00002000| 2b 29 0d 09 09 69 66 20 | 28 76 20 3d 3d 20 42 61 |+)...if |(v == Ba|
|00002010| 75 64 5b 69 5d 29 20 7b | 0d 09 09 09 2a 62 61 75 |ud[i]) {|....*bau|
|00002020| 64 20 3d 20 69 3b 0d 09 | 09 09 62 72 65 61 6b 3b |d = i;..|..break;|
|00002030| 0d 09 09 7d 0d 09 69 66 | 20 28 69 20 3e 3d 20 73 |...}..if| (i >= s|
|00002040| 69 7a 65 6f 66 28 42 61 | 75 64 29 2f 73 69 7a 65 |izeof(Ba|ud)/size|
|00002050| 6f 66 28 73 68 6f 72 74 | 29 29 0d 09 09 72 65 74 |of(short|))...ret|
|00002060| 75 72 6e 20 31 3b 0d 0d | 09 76 20 3d 20 73 65 74 |urn 1;..|.v = set|
|00002070| 75 70 20 26 20 30 78 30 | 43 30 30 3b 09 09 09 09 |up & 0x0|C00;....|
|00002080| 09 2f 2a 20 44 61 74 61 | 20 62 69 74 73 3a 20 62 |./* Data| bits: b|
|00002090| 69 74 73 20 31 31 20 2d | 20 31 30 20 2a 2f 0d 09 |its 11 -| 10 */..|
|000020a0| 66 6f 72 20 28 69 20 3d | 20 30 3b 20 69 20 3c 20 |for (i =| 0; i < |
|000020b0| 73 69 7a 65 6f 66 28 44 | 61 74 61 29 2f 73 69 7a |sizeof(D|ata)/siz|
|000020c0| 65 6f 66 28 73 68 6f 72 | 74 29 3b 20 69 2b 2b 29 |eof(shor|t); i++)|
|000020d0| 0d 09 09 69 66 20 28 76 | 20 3d 3d 20 44 61 74 61 |...if (v| == Data|
|000020e0| 5b 69 5d 29 20 7b 0d 09 | 09 09 2a 64 61 74 61 20 |[i]) {..|..*data |
|000020f0| 3d 20 69 3b 0d 09 09 09 | 62 72 65 61 6b 3b 0d 09 |= i;....|break;..|
|00002100| 09 7d 0d 09 69 66 20 28 | 69 20 3e 3d 20 73 69 7a |.}..if (|i >= siz|
|00002110| 65 6f 66 28 44 61 74 61 | 29 2f 73 69 7a 65 6f 66 |eof(Data|)/sizeof|
|00002120| 28 73 68 6f 72 74 29 29 | 0d 09 09 72 65 74 75 72 |(short))|...retur|
|00002130| 6e 20 32 3b 0d 0d 09 76 | 20 3d 20 73 65 74 75 70 |n 2;...v| = setup|
|00002140| 20 26 20 30 78 33 30 30 | 30 3b 09 09 09 09 09 2f | & 0x300|0;...../|
|00002150| 2a 20 50 61 72 69 74 79 | 3a 20 62 69 74 73 20 31 |* Parity|: bits 1|
|00002160| 33 20 2d 20 31 32 20 2a | 2f 0d 09 66 6f 72 20 28 |3 - 12 *|/..for (|
|00002170| 69 20 3d 20 30 3b 20 69 | 20 3c 20 73 69 7a 65 6f |i = 0; i| < sizeo|
|00002180| 66 28 50 61 72 69 74 79 | 29 2f 73 69 7a 65 6f 66 |f(Parity|)/sizeof|
|00002190| 28 73 68 6f 72 74 29 3b | 20 69 2b 2b 29 0d 09 09 |(short);| i++)...|
|000021a0| 69 66 20 28 76 20 3d 3d | 20 50 61 72 69 74 79 5b |if (v ==| Parity[|
|000021b0| 69 5d 29 20 7b 0d 09 09 | 09 2a 70 61 72 69 74 79 |i]) {...|.*parity|
|000021c0| 20 3d 20 69 3b 0d 09 09 | 09 62 72 65 61 6b 3b 0d | = i;...|.break;.|
|000021d0| 09 09 7d 0d 09 69 66 20 | 28 69 20 3e 3d 20 73 69 |..}..if |(i >= si|
|000021e0| 7a 65 6f 66 28 50 61 72 | 69 74 79 29 2f 73 69 7a |zeof(Par|ity)/siz|
|000021f0| 65 6f 66 28 73 68 6f 72 | 74 29 29 0d 09 09 72 65 |eof(shor|t))...re|
|00002200| 74 75 72 6e 20 33 3b 0d | 0d 09 76 20 3d 20 73 65 |turn 3;.|..v = se|
|00002210| 74 75 70 20 26 20 30 78 | 43 30 30 30 3b 09 09 09 |tup & 0x|C000;...|
|00002220| 09 09 2f 2a 20 53 74 6f | 70 20 62 69 74 73 3a 20 |../* Sto|p bits: |
|00002230| 62 69 74 73 20 31 35 20 | 2d 20 31 34 20 2a 2f 0d |bits 15 |- 14 */.|
|00002240| 09 66 6f 72 20 28 69 20 | 3d 20 30 3b 20 69 20 3c |.for (i |= 0; i <|
|00002250| 20 73 69 7a 65 6f 66 28 | 53 74 6f 70 42 69 74 73 | sizeof(|StopBits|
|00002260| 29 2f 73 69 7a 65 6f 66 | 28 73 68 6f 72 74 29 3b |)/sizeof|(short);|
|00002270| 20 69 2b 2b 29 0d 09 09 | 69 66 20 28 76 20 3d 3d | i++)...|if (v ==|
|00002280| 20 53 74 6f 70 42 69 74 | 73 5b 69 5d 29 20 7b 0d | StopBit|s[i]) {.|
|00002290| 09 09 09 2a 73 74 6f 70 | 20 3d 20 69 3b 0d 09 09 |...*stop| = i;...|
|000022a0| 09 62 72 65 61 6b 3b 0d | 09 09 7d 0d 09 69 66 20 |.break;.|..}..if |
|000022b0| 28 69 20 3e 3d 20 73 69 | 7a 65 6f 66 28 53 74 6f |(i >= si|zeof(Sto|
|000022c0| 70 42 69 74 73 29 2f 73 | 69 7a 65 6f 66 28 73 68 |pBits)/s|izeof(sh|
|000022d0| 6f 72 74 29 29 0d 09 09 | 72 65 74 75 72 6e 20 34 |ort))...|return 4|
|000022e0| 3b 0d 0d 09 72 65 74 75 | 72 6e 20 30 3b 0d 7d 0d |;...retu|rn 0;.}.|
|000022f0| 0d 2f 2a 20 2d 2d 2d 2d | 2d 20 53 65 74 20 73 65 |./* ----|- Set se|
|00002300| 72 69 61 6c 20 70 6f 72 | 74 20 73 65 74 75 70 20 |rial por|t setup |
|00002310| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002320| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002330| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 20 2a 2f 0d 0d 73 68 |--------|- */..sh|
|00002340| 6f 72 74 20 53 65 72 69 | 61 6c 53 65 74 53 65 74 |ort Seri|alSetSet|
|00002350| 75 70 28 0d 09 72 65 67 | 69 73 74 65 72 20 73 68 |up(..reg|ister sh|
|00002360| 6f 72 74 20 62 61 75 64 | 2c 09 2f 2a 20 30 3d 33 |ort baud|,./* 0=3|
|00002370| 30 30 20 42 61 75 64 20 | 2e 2e 2e 20 2a 2f 0d 09 |00 Baud |... */..|
|00002380| 72 65 67 69 73 74 65 72 | 20 73 68 6f 72 74 20 64 |register| short d|
|00002390| 61 74 61 2c 09 2f 2a 20 | 30 3d 37 20 62 69 74 73 |ata,./* |0=7 bits|
|000023a0| 20 2e 2e 2e 20 2a 2f 0d | 09 72 65 67 69 73 74 65 | ... */.|.registe|
|000023b0| 72 20 73 68 6f 72 74 20 | 70 61 72 69 74 79 2c 09 |r short |parity,.|
|000023c0| 2f 2a 20 30 3d 6e 6f 6e | 65 20 2e 2e 2e 20 2a 2f |/* 0=non|e ... */|
|000023d0| 0d 09 72 65 67 69 73 74 | 65 72 20 73 68 6f 72 74 |..regist|er short|
|000023e0| 20 73 74 6f 70 2c 09 2f | 2a 20 30 3d 31 20 73 74 | stop,./|* 0=1 st|
|000023f0| 6f 70 20 62 69 74 73 20 | 2e 2e 2e 20 2a 2f 0d 09 |op bits |... */..|
|00002400| 72 65 67 69 73 74 65 72 | 20 73 68 6f 72 74 20 2a |register| short *|
|00002410| 73 65 74 75 70 29 09 2f | 2a 20 53 65 72 69 61 6c |setup)./|* Serial|
|00002420| 20 63 68 69 70 20 73 65 | 74 75 70 20 77 6f 72 64 | chip se|tup word|
|00002430| 20 2a 2f 0d 7b 0d 09 2a | 73 65 74 75 70 20 3d 20 | */.{..*|setup = |
|00002440| 42 61 75 64 5b 30 5d 20 | 7c 20 44 61 74 61 5b 30 |Baud[0] || Data[0|
|00002450| 5d 20 7c 20 50 61 72 69 | 74 79 5b 30 5d 20 7c 20 |] | Pari|ty[0] | |
|00002460| 53 74 6f 70 42 69 74 73 | 5b 30 5d 3b 0d 09 69 66 |StopBits|[0];..if|
|00002470| 20 28 62 61 75 64 20 3c | 20 30 20 7c 7c 20 62 61 | (baud <| 0 || ba|
|00002480| 75 64 20 3e 3d 20 73 69 | 7a 65 6f 66 28 42 61 75 |ud >= si|zeof(Bau|
|00002490| 64 29 2f 73 69 7a 65 6f | 66 28 73 68 6f 72 74 29 |d)/sizeo|f(short)|
|000024a0| 29 0d 09 09 72 65 74 75 | 72 6e 20 31 3b 0d 09 69 |)...retu|rn 1;..i|
|000024b0| 66 20 28 64 61 74 61 20 | 3c 20 30 20 7c 7c 20 64 |f (data |< 0 || d|
|000024c0| 61 74 61 20 3e 3d 20 73 | 69 7a 65 6f 66 28 44 61 |ata >= s|izeof(Da|
|000024d0| 74 61 29 2f 73 69 7a 65 | 6f 66 28 73 68 6f 72 74 |ta)/size|of(short|
|000024e0| 29 29 0d 09 09 72 65 74 | 75 72 6e 20 32 3b 0d 09 |))...ret|urn 2;..|
|000024f0| 69 66 20 28 70 61 72 69 | 74 79 20 3c 20 30 20 7c |if (pari|ty < 0 ||
|00002500| 7c 20 70 61 72 69 74 79 | 20 3e 3d 20 73 69 7a 65 || parity| >= size|
|00002510| 6f 66 28 50 61 72 69 74 | 79 29 2f 73 69 7a 65 6f |of(Parit|y)/sizeo|
|00002520| 66 28 73 68 6f 72 74 29 | 29 0d 09 09 72 65 74 75 |f(short)|)...retu|
|00002530| 72 6e 20 33 3b 0d 09 69 | 66 20 28 73 74 6f 70 20 |rn 3;..i|f (stop |
|00002540| 3c 20 30 20 7c 7c 20 73 | 74 6f 70 20 3e 3d 20 73 |< 0 || s|top >= s|
|00002550| 69 7a 65 6f 66 28 53 74 | 6f 70 42 69 74 73 29 2f |izeof(St|opBits)/|
|00002560| 73 69 7a 65 6f 66 28 73 | 68 6f 72 74 29 29 0d 09 |sizeof(s|hort))..|
|00002570| 09 72 65 74 75 72 6e 20 | 34 3b 0d 09 2a 73 65 74 |.return |4;..*set|
|00002580| 75 70 20 3d 20 42 61 75 | 64 5b 62 61 75 64 5d 20 |up = Bau|d[baud] |
|00002590| 7c 20 44 61 74 61 5b 64 | 61 74 61 5d 20 7c 20 50 || Data[d|ata] | P|
|000025a0| 61 72 69 74 79 5b 70 61 | 72 69 74 79 5d 20 7c 20 |arity[pa|rity] | |
|000025b0| 53 74 6f 70 42 69 74 73 | 5b 73 74 6f 70 5d 3b 0d |StopBits|[stop];.|
|000025c0| 09 72 65 74 75 72 6e 20 | 30 3b 0d 7d 0d 0d 2f 2a |.return |0;.}../*|
|000025d0| 20 2d 2d 2d 2d 2d 20 43 | 6c 6f 73 65 20 73 65 72 | ----- C|lose ser|
|000025e0| 69 61 6c 20 70 6f 72 74 | 20 2d 2d 2d 2d 2d 2d 2d |ial port| -------|
|000025f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002600| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002610| 2d 2d 2d 2d 2d 2d 20 2a | 2f 0d 0d 76 6f 69 64 20 |------ *|/..void |
|00002620| 53 65 72 69 61 6c 43 6c | 6f 73 65 28 76 6f 69 64 |SerialCl|ose(void|
|00002630| 29 0d 7b 0d 09 2f 2a 09 | 57 61 72 6e 69 6e 67 21 |).{../*.|Warning!|
|00002640| 20 56 45 52 59 20 42 41 | 44 20 54 48 49 4e 47 53 | VERY BA|D THINGS|
|00002650| 20 43 41 4e 20 48 41 50 | 50 45 4e 20 28 50 65 72 | CAN HAP|PEN (Per|
|00002660| 68 61 70 73 20 65 76 65 | 6e 20 6c 6f 73 73 20 6f |haps eve|n loss o|
|00002670| 66 20 64 61 74 61 0d 09 | 09 6f 6e 20 79 6f 75 72 |f data..|.on your|
|00002680| 20 68 61 72 64 20 64 69 | 73 6b 21 29 20 6c 6f 6e | hard di|sk!) lon|
|00002690| 67 20 61 66 74 65 72 20 | 79 6f 75 72 20 70 72 6f |g after |your pro|
|000026a0| 67 72 61 6d 20 71 75 69 | 74 73 20 69 66 20 79 6f |gram qui|ts if yo|
|000026b0| 75 20 66 6f 72 67 65 74 | 0d 09 09 74 6f 20 64 6f |u forget|...to do|
|000026c0| 20 74 68 69 73 2c 20 6f | 72 20 66 6f 72 67 65 74 | this, o|r forget|
|000026d0| 20 74 6f 20 63 6c 6f 73 | 65 20 74 68 65 20 64 72 | to clos|e the dr|
|000026e0| 69 76 65 72 20 70 72 6f | 70 65 72 6c 79 21 0d 09 |iver pro|perly!..|
|000026f0| 09 49 74 20 69 73 20 65 | 73 73 65 6e 74 69 61 6c |.It is e|ssential|
|00002700| 20 74 68 61 74 20 79 6f | 75 20 64 6f 20 6e 6f 74 | that yo|u do not|
|00002710| 20 65 76 65 72 20 6c 65 | 61 76 65 20 61 20 63 75 | ever le|ave a cu|
|00002720| 73 74 6f 6d 20 69 6e 70 | 75 74 20 62 75 66 66 65 |stom inp|ut buffe|
|00002730| 72 0d 09 09 64 61 6e 67 | 6c 69 6e 67 2c 20 45 56 |r...dang|ling, EV|
|00002740| 45 4e 20 69 66 20 79 6f | 75 20 61 62 6f 72 74 20 |EN if yo|u abort |
|00002750| 79 6f 75 72 20 70 72 6f | 67 72 61 6d 20 66 6f 72 |your pro|gram for|
|00002760| 20 73 6f 6d 65 20 6f 74 | 68 65 72 20 72 65 61 73 | some ot|her reas|
|00002770| 6f 6e 21 0d 09 09 54 68 | 65 20 4f 53 20 77 69 6c |on!...Th|e OS wil|
|00002780| 6c 20 4e 4f 54 20 66 69 | 78 20 74 68 69 73 20 75 |l NOT fi|x this u|
|00002790| 70 20 66 6f 72 20 79 6f | 75 21 20 59 6f 75 20 68 |p for yo|u! You h|
|000027a0| 61 76 65 20 62 65 65 6e | 20 77 61 72 6e 65 64 21 |ave been| warned!|
|000027b0| 20 2a 2f 0d 0d 09 69 66 | 20 28 49 4e 50 55 54 29 | */...if| (INPUT)|
|000027c0| 20 7b 0d 09 09 53 65 72 | 53 65 74 42 75 66 28 49 | {...Ser|SetBuf(I|
|000027d0| 4e 50 55 54 2c 20 69 6e | 70 75 74 42 75 66 66 65 |NPUT, in|putBuffe|
|000027e0| 72 2c 20 30 29 3b 0d 09 | 09 43 6c 6f 73 65 44 72 |r, 0);..|.CloseDr|
|000027f0| 69 76 65 72 28 49 4e 50 | 55 54 29 3b 0d 09 09 49 |iver(INP|UT);...I|
|00002800| 4e 50 55 54 20 3d 20 30 | 3b 0d 09 7d 0d 09 69 66 |NPUT = 0|;..}..if|
|00002810| 20 28 4f 55 54 50 55 54 | 29 20 7b 0d 09 09 53 65 | (OUTPUT|) {...Se|
|00002820| 72 53 65 74 42 75 66 28 | 4f 55 54 50 55 54 2c 20 |rSetBuf(|OUTPUT, |
|00002830| 6f 75 74 70 75 74 42 75 | 66 66 65 72 2c 20 30 29 |outputBu|ffer, 0)|
|00002840| 3b 0d 09 09 43 6c 6f 73 | 65 44 72 69 76 65 72 28 |;...Clos|eDriver(|
|00002850| 4f 55 54 50 55 54 29 3b | 0d 09 09 4f 55 54 50 55 |OUTPUT);|...OUTPU|
|00002860| 54 20 3d 20 30 3b 0d 09 | 7d 0d 7d 0d 0d 2f 2a 20 |T = 0;..|}.}../* |
|00002870| 2d 2d 2d 2d 2d 20 4f 70 | 65 6e 20 73 65 72 69 61 |----- Op|en seria|
|00002880| 6c 20 70 6f 72 74 20 61 | 6e 64 20 73 65 74 20 70 |l port a|nd set p|
|00002890| 61 72 61 6d 65 74 65 72 | 73 20 2d 2d 2d 2d 2d 2d |arameter|s ------|
|000028a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000028b0| 2d 2d 2d 2d 2d 20 2a 2f | 0d 0d 73 68 6f 72 74 20 |----- */|..short |
|000028c0| 53 65 72 69 61 6c 4f 70 | 65 6e 28 0d 09 72 65 67 |SerialOp|en(..reg|
|000028d0| 69 73 74 65 72 20 42 79 | 74 65 20 2a 70 6f 72 74 |ister By|te *port|
|000028e0| 2c 09 09 2f 2a 20 50 6f | 72 74 27 73 20 6e 61 6d |,../* Po|rt's nam|
|000028f0| 65 20 28 65 2e 67 2e 20 | 22 5c 70 4d 6f 64 65 6d |e (e.g. |"\pModem|
|00002900| 20 50 6f 72 74 22 29 20 | 2a 2f 0d 09 72 65 67 69 | Port") |*/..regi|
|00002910| 73 74 65 72 20 73 68 6f | 72 74 20 73 65 74 75 70 |ster sho|rt setup|
|00002920| 2c 09 09 2f 2a 20 53 65 | 72 69 61 6c 20 63 68 69 |,../* Se|rial chi|
|00002930| 70 20 73 65 74 75 70 20 | 77 6f 72 64 20 2a 2f 0d |p setup |word */.|
|00002940| 09 72 65 67 69 73 74 65 | 72 20 73 68 6f 72 74 20 |.registe|r short |
|00002950| 68 61 6e 64 73 68 61 6b | 65 29 09 2f 2a 20 30 3d |handshak|e)./* 0=|
|00002960| 6e 6f 6e 65 20 2e 2e 2e | 20 2a 2f 0d 7b 0d 09 72 |none ...| */.{..r|
|00002970| 65 67 69 73 74 65 72 20 | 73 68 6f 72 74 20 65 72 |egister |short er|
|00002980| 72 3b 0d 0d 09 6d 65 6d | 63 70 79 28 43 55 52 52 |r;...mem|cpy(CURR|
|00002990| 45 4e 54 50 4f 52 54 2c | 20 70 6f 72 74 2c 20 2a |ENTPORT,| port, *|
|000029a0| 70 6f 72 74 20 2b 20 31 | 29 3b 0d 09 69 66 20 28 |port + 1|);..if (|
|000029b0| 70 6f 72 74 5b 30 5d 20 | 3d 3d 20 30 29 09 09 09 |port[0] |== 0)...|
|000029c0| 2f 2a 20 49 74 27 73 20 | 6f 6b 20 74 6f 20 75 73 |/* It's |ok to us|
|000029d0| 65 20 74 68 65 20 22 6e | 6f 6e 65 22 20 70 6f 72 |e the "n|one" por|
|000029e0| 74 20 2a 2f 0d 09 09 72 | 65 74 75 72 6e 20 30 3b |t */...r|eturn 0;|
|000029f0| 0d 09 69 66 20 28 65 72 | 72 20 3d 20 4f 70 65 6e |..if (er|r = Open|
|00002a00| 53 65 72 69 61 6c 44 72 | 69 76 65 72 28 70 6f 72 |SerialDr|iver(por|
|00002a10| 74 29 29 0d 09 09 72 65 | 74 75 72 6e 20 65 72 72 |t))...re|turn err|
|00002a20| 3b 0d 09 2f 2a 20 4b 65 | 65 70 20 69 6e 70 75 74 |;../* Ke|ep input|
|00002a30| 20 62 75 66 66 65 72 20 | 69 66 20 61 6c 72 65 61 | buffer |if alrea|
|00002a40| 64 79 20 61 6c 6c 6f 63 | 61 74 65 64 20 2a 2f 0d |dy alloc|ated */.|
|00002a50| 09 69 66 20 28 21 69 6e | 70 75 74 42 75 66 66 65 |.if (!in|putBuffe|
|00002a60| 72 20 26 26 20 21 28 69 | 6e 70 75 74 42 75 66 66 |r && !(i|nputBuff|
|00002a70| 65 72 20 3d 20 4e 65 77 | 50 74 72 28 49 4e 50 55 |er = New|Ptr(INPU|
|00002a80| 54 4c 45 4e 47 54 48 29 | 29 29 20 7b 0d 09 09 53 |TLENGTH)|)) {...S|
|00002a90| 65 72 69 61 6c 43 6c 6f | 73 65 28 29 3b 0d 09 09 |erialClo|se();...|
|00002aa0| 72 65 74 75 72 6e 20 6d | 65 6d 46 75 6c 6c 45 72 |return m|emFullEr|
|00002ab0| 72 3b 0d 09 7d 0d 09 53 | 65 72 53 65 74 42 75 66 |r;..}..S|erSetBuf|
|00002ac0| 28 49 4e 50 55 54 2c 20 | 69 6e 70 75 74 42 75 66 |(INPUT, |inputBuf|
|00002ad0| 66 65 72 2c 20 49 4e 50 | 55 54 4c 45 4e 47 54 48 |fer, INP|UTLENGTH|
|00002ae0| 29 3b 0d 09 53 65 72 69 | 61 6c 48 61 6e 64 73 68 |);..Seri|alHandsh|
|00002af0| 61 6b 65 28 68 61 6e 64 | 73 68 61 6b 65 29 3b 0d |ake(hand|shake);.|
|00002b00| 09 53 65 72 69 61 6c 52 | 65 73 65 74 28 73 65 74 |.SerialR|eset(set|
|00002b10| 75 70 29 3b 0d 09 72 65 | 74 75 72 6e 20 30 3b 09 |up);..re|turn 0;.|
|00002b20| 09 09 09 09 2f 2a 20 4f | 6b 20 2a 2f 0d 7d 0d 0d |..../* O|k */.}..|
|00002b30| 2f 2a 20 2d 2d 2d 2d 2d | 20 52 65 61 64 20 63 68 |/* -----| Read ch|
|00002b40| 61 72 61 63 74 65 72 73 | 20 66 72 6f 6d 20 73 65 |aracters| from se|
|00002b50| 72 69 61 6c 20 70 6f 72 | 74 20 2d 2d 2d 2d 2d 2d |rial por|t ------|
|00002b60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002b70| 2d 2d 2d 2d 2d 2d 2d 2d | 20 2a 2f 0d 0d 76 6f 69 |--------| */..voi|
|00002b80| 64 20 53 65 72 69 61 6c | 46 61 73 74 52 65 61 64 |d Serial|FastRead|
|00002b90| 28 0d 09 72 65 67 69 73 | 74 65 72 20 42 79 74 65 |(..regis|ter Byte|
|00002ba0| 20 2a 62 75 66 66 65 72 | 2c 0d 09 72 65 67 69 73 | *buffer|,..regis|
|00002bb0| 74 65 72 20 6c 6f 6e 67 | 20 63 6f 75 6e 74 29 0d |ter long| count).|
|00002bc0| 7b 0d 09 49 4f 50 61 72 | 61 6d 20 62 3b 0d 0d 09 |{..IOPar|am b;...|
|00002bd0| 69 66 20 28 21 49 4e 50 | 55 54 29 0d 09 09 72 65 |if (!INP|UT)...re|
|00002be0| 74 75 72 6e 3b 0d 09 62 | 2e 69 6f 52 65 66 4e 75 |turn;..b|.ioRefNu|
|00002bf0| 6d 20 3d 20 49 4e 50 55 | 54 3b 0d 09 62 2e 69 6f |m = INPU|T;..b.io|
|00002c00| 42 75 66 66 65 72 20 3d | 20 28 50 74 72 29 62 75 |Buffer =| (Ptr)bu|
|00002c10| 66 66 65 72 3b 0d 09 62 | 2e 69 6f 52 65 71 43 6f |ffer;..b|.ioReqCo|
|00002c20| 75 6e 74 20 3d 20 63 6f | 75 6e 74 3b 0d 09 50 42 |unt = co|unt;..PB|
|00002c30| 52 65 61 64 28 28 50 61 | 72 6d 42 6c 6b 50 74 72 |Read((Pa|rmBlkPtr|
|00002c40| 29 26 62 2c 20 46 41 4c | 53 45 29 3b 0d 7d 0d 0d |)&b, FAL|SE);.}..|
|00002c50| 2f 2a 20 2d 2d 2d 2d 2d | 20 52 65 61 64 20 63 68 |/* -----| Read ch|
|00002c60| 61 72 61 63 74 65 72 73 | 20 66 72 6f 6d 20 73 65 |aracters| from se|
|00002c70| 72 69 61 6c 20 70 6f 72 | 74 20 2d 2d 2d 2d 2d 2d |rial por|t ------|
|00002c80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002c90| 2d 2d 2d 2d 2d 2d 2d 2d | 20 2a 2f 0d 0d 6c 6f 6e |--------| */..lon|
|00002ca0| 67 20 53 65 72 69 61 6c | 52 65 61 64 28 0d 09 72 |g Serial|Read(..r|
|00002cb0| 65 67 69 73 74 65 72 20 | 42 79 74 65 20 2a 62 75 |egister |Byte *bu|
|00002cc0| 66 66 65 72 2c 0d 09 72 | 65 67 69 73 74 65 72 20 |ffer,..r|egister |
|00002cd0| 6c 6f 6e 67 20 6d 61 78 | 29 0d 7b 0d 09 72 65 67 |long max|).{..reg|
|00002ce0| 69 73 74 65 72 20 6c 6f | 6e 67 20 6e 3b 0d 09 43 |ister lo|ng n;..C|
|00002cf0| 6e 74 72 6c 50 61 72 61 | 6d 20 63 3b 0d 09 49 4f |ntrlPara|m c;..IO|
|00002d00| 50 61 72 61 6d 20 62 3b | 0d 0d 09 69 66 20 28 21 |Param b;|...if (!|
|00002d10| 49 4e 50 55 54 29 0d 09 | 09 72 65 74 75 72 6e 20 |INPUT)..|.return |
|00002d20| 30 3b 0d 09 43 52 45 46 | 4e 55 4d 28 63 29 20 3d |0;..CREF|NUM(c) =|
|00002d30| 20 49 4e 50 55 54 3b 0d | 09 63 2e 63 73 43 6f 64 | INPUT;.|.c.csCod|
|00002d40| 65 20 3d 20 32 3b 0d 09 | 69 66 20 28 50 42 53 74 |e = 2;..|if (PBSt|
|00002d50| 61 74 75 73 28 28 50 61 | 72 6d 42 6c 6b 50 74 72 |atus((Pa|rmBlkPtr|
|00002d60| 29 26 63 2c 20 46 41 4c | 53 45 29 29 0d 09 09 72 |)&c, FAL|SE))...r|
|00002d70| 65 74 75 72 6e 20 30 3b | 0d 09 69 66 20 28 6e 20 |eturn 0;|..if (n |
|00002d80| 3d 20 2a 28 6c 6f 6e 67 | 20 2a 29 26 63 2e 63 73 |= *(long| *)&c.cs|
|00002d90| 50 61 72 61 6d 5b 30 5d | 29 20 7b 0d 09 09 62 2e |Param[0]|) {...b.|
|00002da0| 69 6f 52 65 66 4e 75 6d | 20 3d 20 49 4e 50 55 54 |ioRefNum| = INPUT|
|00002db0| 3b 0d 09 09 62 2e 69 6f | 42 75 66 66 65 72 20 3d |;...b.io|Buffer =|
|00002dc0| 20 28 50 74 72 29 62 75 | 66 66 65 72 3b 0d 09 09 | (Ptr)bu|ffer;...|
|00002dd0| 62 2e 69 6f 52 65 71 43 | 6f 75 6e 74 20 3d 20 28 |b.ioReqC|ount = (|
|00002de0| 6d 61 78 20 3e 20 6e 29 | 20 3f 20 6e 20 3a 20 6d |max > n)| ? n : m|
|00002df0| 61 78 3b 0d 09 09 72 65 | 74 75 72 6e 20 50 42 52 |ax;...re|turn PBR|
|00002e00| 65 61 64 28 28 50 61 72 | 6d 42 6c 6b 50 74 72 29 |ead((Par|mBlkPtr)|
|00002e10| 26 62 2c 20 46 41 4c 53 | 45 29 20 3f 20 30 20 3a |&b, FALS|E) ? 0 :|
|00002e20| 20 62 2e 69 6f 52 65 71 | 43 6f 75 6e 74 3b 0d 09 | b.ioReq|Count;..|
|00002e30| 7d 0d 09 72 65 74 75 72 | 6e 20 30 3b 09 2f 2a 20 |}..retur|n 0;./* |
|00002e40| 4e 6f 74 68 69 6e 67 20 | 61 76 61 69 6c 61 62 6c |Nothing |availabl|
|00002e50| 65 20 2a 2f 0d 7d 0d 0d | 2f 2a 20 2d 2d 2d 2d 2d |e */.}..|/* -----|
|00002e60| 20 46 6c 75 73 68 20 73 | 65 72 69 61 6c 20 69 6e | Flush s|erial in|
|00002e70| 70 75 74 20 62 75 66 66 | 65 72 20 2d 2d 2d 2d 2d |put buff|er -----|
|00002e80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002e90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ea0| 20 2a 2f 0d 0d 76 6f 69 | 64 20 53 65 72 69 61 6c | */..voi|d Serial|
|00002eb0| 46 6c 75 73 68 28 76 6f | 69 64 29 0d 7b 0d 09 43 |Flush(vo|id).{..C|
|00002ec0| 6e 74 72 6c 50 61 72 61 | 6d 20 62 3b 0d 0d 09 69 |ntrlPara|m b;...i|
|00002ed0| 66 20 28 21 49 4e 50 55 | 54 29 0d 09 09 72 65 74 |f (!INPU|T)...ret|
|00002ee0| 75 72 6e 3b 0d 09 43 52 | 45 46 4e 55 4d 28 62 29 |urn;..CR|EFNUM(b)|
|00002ef0| 20 3d 20 49 4e 50 55 54 | 3b 0d 09 62 2e 69 6f 43 | = INPUT|;..b.ioC|
|00002f00| 6f 6d 70 6c 65 74 69 6f | 6e 20 3d 20 30 3b 0d 09 |ompletio|n = 0;..|
|00002f10| 50 42 4b 69 6c 6c 49 4f | 28 28 50 61 72 6d 42 6c |PBKillIO|((ParmBl|
|00002f20| 6b 50 74 72 29 26 62 2c | 20 46 41 4c 53 45 29 3b |kPtr)&b,| FALSE);|
|00002f30| 0d 7d 0d 0d 2f 2a 20 2d | 2d 2d 2d 2d 20 41 62 6f |.}../* -|---- Abo|
|00002f40| 72 74 20 73 65 72 69 61 | 6c 20 73 65 6e 64 20 2d |rt seria|l send -|
|00002f50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 20 2a 2f 0d |--------|---- */.|
|00002f80| 0d 76 6f 69 64 20 53 65 | 72 69 61 6c 41 62 6f 72 |.void Se|rialAbor|
|00002f90| 74 28 76 6f 69 64 29 0d | 7b 0d 09 43 6e 74 72 6c |t(void).|{..Cntrl|
|00002fa0| 50 61 72 61 6d 20 62 3b | 0d 0d 09 69 66 20 28 21 |Param b;|...if (!|
|00002fb0| 4f 55 54 50 55 54 29 0d | 09 09 72 65 74 75 72 6e |OUTPUT).|..return|
|00002fc0| 3b 0d 09 43 52 45 46 4e | 55 4d 28 62 29 20 3d 20 |;..CREFN|UM(b) = |
|00002fd0| 4f 55 54 50 55 54 3b 0d | 09 62 2e 69 6f 43 6f 6d |OUTPUT;.|.b.ioCom|
|00002fe0| 70 6c 65 74 69 6f 6e 20 | 3d 20 30 3b 0d 09 50 42 |pletion |= 0;..PB|
|00002ff0| 4b 69 6c 6c 49 4f 28 28 | 50 61 72 6d 42 6c 6b 50 |KillIO((|ParmBlkP|
|00003000| 74 72 29 26 62 2c 20 46 | 41 4c 53 45 29 3b 0d 7d |tr)&b, F|ALSE);.}|
|00003010| 0d 0d 2f 2a 20 2d 2d 2d | 2d 2d 20 53 65 6e 64 20 |../* ---|-- Send |
|00003020| 62 75 66 66 65 72 20 2d | 2d 2d 2d 2d 2d 2d 2d 2d |buffer -|--------|
|00003030| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003040| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003050| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 20 2a 2f 0d 0d 73 |--------|-- */..s|
|00003060| 74 61 74 69 63 20 70 61 | 73 63 61 6c 20 76 6f 69 |tatic pa|scal voi|
|00003070| 64 20 53 65 6e 64 43 6f | 6d 70 6c 65 74 65 28 76 |d SendCo|mplete(v|
|00003080| 6f 69 64 29 3b 0d 0d 23 | 69 66 64 65 66 20 54 48 |oid);..#|ifdef TH|
|00003090| 49 4e 4b 5f 43 0d 73 74 | 61 74 69 63 20 70 61 73 |INK_C.st|atic pas|
|000030a0| 63 61 6c 20 76 6f 69 64 | 20 53 65 6e 64 43 6f 6d |cal void| SendCom|
|000030b0| 70 6c 65 74 65 28 29 0d | 7b 0d 09 2f 2a 20 41 30 |plete().|{../* A0|
|000030c0| 20 68 61 73 20 61 64 64 | 72 65 73 73 20 6f 66 20 | has add|ress of |
|000030d0| 49 4f 50 61 72 61 6d 20 | 2a 2f 0d 09 61 73 6d 20 |IOParam |*/..asm |
|000030e0| 7b 0d 09 09 4d 4f 56 45 | 2e 4c 09 2d 34 28 41 30 |{...MOVE|.L.-4(A0|
|000030f0| 29 2c 41 30 09 2f 2a 20 | 47 65 74 20 62 75 73 79 |),A0./* |Get busy|
|00003100| 20 66 6c 61 67 20 61 64 | 64 72 65 73 73 20 2a 2f | flag ad|dress */|
|00003110| 0d 09 09 43 4c 52 2e 42 | 09 30 28 41 30 29 09 09 |...CLR.B|.0(A0)..|
|00003120| 2f 2a 20 43 6c 65 61 72 | 20 74 68 65 20 62 75 73 |/* Clear| the bus|
|00003130| 79 20 66 6c 61 67 20 28 | 46 41 4c 53 45 29 20 2a |y flag (|FALSE) *|
|00003140| 2f 0d 09 7d 0d 7d 0d 23 | 65 6e 64 69 66 0d 0d 76 |/..}.}.#|endif..v|
|00003150| 6f 69 64 20 53 65 72 69 | 61 6c 53 65 6e 64 28 0d |oid Seri|alSend(.|
|00003160| 09 72 65 67 69 73 74 65 | 72 20 42 79 74 65 20 2a |.registe|r Byte *|
|00003170| 62 75 66 66 65 72 2c 0d | 09 72 65 67 69 73 74 65 |buffer,.|.registe|
|00003180| 72 20 6c 6f 6e 67 20 63 | 6f 75 6e 74 2c 0d 09 72 |r long c|ount,..r|
|00003190| 65 67 69 73 74 65 72 20 | 42 6f 6f 6c 65 61 6e 20 |egister |Boolean |
|000031a0| 2a 62 75 73 79 29 0d 7b | 0d 09 73 74 61 74 69 63 |*busy).{|..static|
|000031b0| 20 73 74 72 75 63 74 20 | 7b 09 09 2f 2a 20 4d 75 | struct |{../* Mu|
|000031c0| 73 74 20 62 65 20 73 74 | 61 74 69 63 21 20 2a 2f |st be st|atic! */|
|000031d0| 0d 09 09 42 6f 6f 6c 65 | 61 6e 20 2a 62 75 73 79 |...Boole|an *busy|
|000031e0| 3b 09 2f 2a 20 54 52 55 | 45 20 77 68 69 6c 65 20 |;./* TRU|E while |
|000031f0| 73 65 6e 64 69 6e 67 20 | 2a 2f 0d 09 09 49 4f 50 |sending |*/...IOP|
|00003200| 61 72 61 6d 20 62 3b 0d | 09 7d 20 70 61 72 61 6d |aram b;.|.} param|
|00003210| 3b 0d 0d 09 69 66 20 28 | 21 4f 55 54 50 55 54 29 |;...if (|!OUTPUT)|
|00003220| 20 7b 0d 09 09 2a 62 75 | 73 79 20 3d 20 46 41 4c | {...*bu|sy = FAL|
|00003230| 53 45 3b 0d 09 09 72 65 | 74 75 72 6e 3b 0d 09 7d |SE;...re|turn;..}|
|00003240| 0d 09 2a 62 75 73 79 20 | 3d 20 54 52 55 45 3b 0d |..*busy |= TRUE;.|
|00003250| 09 70 61 72 61 6d 2e 62 | 75 73 79 20 3d 20 62 75 |.param.b|usy = bu|
|00003260| 73 79 3b 0d 09 70 61 72 | 61 6d 2e 62 2e 69 6f 43 |sy;..par|am.b.ioC|
|00003270| 6f 6d 70 6c 65 74 69 6f | 6e 20 3d 20 28 50 72 6f |ompletio|n = (Pro|
|00003280| 63 50 74 72 29 53 65 6e | 64 43 6f 6d 70 6c 65 74 |cPtr)Sen|dComplet|
|00003290| 65 3b 0d 09 70 61 72 61 | 6d 2e 62 2e 69 6f 52 65 |e;..para|m.b.ioRe|
|000032a0| 66 4e 75 6d 20 3d 20 4f | 55 54 50 55 54 3b 0d 09 |fNum = O|UTPUT;..|
|000032b0| 70 61 72 61 6d 2e 62 2e | 69 6f 42 75 66 66 65 72 |param.b.|ioBuffer|
|000032c0| 20 3d 20 28 50 74 72 29 | 62 75 66 66 65 72 3b 0d | = (Ptr)|buffer;.|
|000032d0| 09 70 61 72 61 6d 2e 62 | 2e 69 6f 52 65 71 43 6f |.param.b|.ioReqCo|
|000032e0| 75 6e 74 20 3d 20 63 6f | 75 6e 74 3b 0d 09 50 42 |unt = co|unt;..PB|
|000032f0| 57 72 69 74 65 28 28 50 | 61 72 6d 42 6c 6b 50 74 |Write((P|armBlkPt|
|00003300| 72 29 26 70 61 72 61 6d | 2e 62 2c 20 54 52 55 45 |r)¶m|.b, TRUE|
|00003310| 29 3b 09 09 2f 2a 20 41 | 73 79 6e 63 68 72 6f 6e |);../* A|synchron|
|00003320| 65 20 2a 2f 0d 7d 0d 0d | 2f 2a 20 2d 2d 2d 2d 2d |e */.}..|/* -----|
|00003330| 20 53 65 65 20 68 6f 77 | 20 6d 61 6e 79 20 62 79 | See how| many by|
|00003340| 74 65 73 20 61 72 65 20 | 69 6e 20 69 6e 70 75 74 |tes are |in input|
|00003350| 20 62 75 66 66 65 72 20 | 2d 2d 2d 2d 2d 2d 2d 2d | buffer |--------|
|00003360| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003370| 20 2a 2f 0d 0d 6c 6f 6e | 67 20 53 65 72 69 61 6c | */..lon|g Serial|
|00003380| 43 68 65 63 6b 28 76 6f | 69 64 29 0d 7b 0d 09 43 |Check(vo|id).{..C|
|00003390| 6e 74 72 6c 50 61 72 61 | 6d 20 63 3b 0d 0d 09 69 |ntrlPara|m c;...i|
|000033a0| 66 20 28 21 49 4e 50 55 | 54 29 0d 09 09 72 65 74 |f (!INPU|T)...ret|
|000033b0| 75 72 6e 20 30 3b 0d 09 | 43 52 45 46 4e 55 4d 28 |urn 0;..|CREFNUM(|
|000033c0| 63 29 20 3d 20 49 4e 50 | 55 54 3b 0d 09 63 2e 63 |c) = INP|UT;..c.c|
|000033d0| 73 43 6f 64 65 20 3d 20 | 32 3b 0d 09 69 66 20 28 |sCode = |2;..if (|
|000033e0| 21 50 42 53 74 61 74 75 | 73 28 28 50 61 72 6d 42 |!PBStatu|s((ParmB|
|000033f0| 6c 6b 50 74 72 29 26 63 | 2c 20 46 41 4c 53 45 29 |lkPtr)&c|, FALSE)|
|00003400| 29 0d 09 09 72 65 74 75 | 72 6e 20 2a 28 6c 6f 6e |)...retu|rn *(lon|
|00003410| 67 20 2a 29 26 63 2e 63 | 73 50 61 72 61 6d 5b 30 |g *)&c.c|sParam[0|
|00003420| 5d 3b 0d 09 72 65 74 75 | 72 6e 20 30 3b 0d 7d 0d |];..retu|rn 0;.}.|
|00003430| 0d 2f 2a 20 2d 2d 2d 2d | 2d 20 4e 65 67 61 74 65 |./* ----|- Negate|
|00003440| 20 6f 72 20 61 73 73 65 | 72 74 20 44 54 52 20 2d | or asse|rt DTR -|
|00003450| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003460| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003470| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 20 2a 2f 0d 0d 76 6f |--------|- */..vo|
|00003480| 69 64 20 53 65 72 69 61 | 6c 44 54 52 28 0d 09 72 |id Seria|lDTR(..r|
|00003490| 65 67 69 73 74 65 72 20 | 42 6f 6f 6c 65 61 6e 20 |egister |Boolean |
|000034a0| 68 6f 77 29 09 2f 2a 20 | 46 41 4c 53 45 3a 20 6e |how)./* |FALSE: n|
|000034b0| 65 67 61 74 65 2c 20 54 | 52 55 45 3a 61 73 73 65 |egate, T|RUE:asse|
|000034c0| 72 74 20 2a 2f 0d 7b 0d | 09 43 6e 74 72 6c 50 61 |rt */.{.|.CntrlPa|
|000034d0| 72 61 6d 20 63 3b 0d 0d | 09 69 66 20 28 21 4f 55 |ram c;..|.if (!OU|
|000034e0| 54 50 55 54 29 0d 09 09 | 72 65 74 75 72 6e 3b 0d |TPUT)...|return;.|
|000034f0| 09 43 52 45 46 4e 55 4d | 28 63 29 20 3d 20 4f 55 |.CREFNUM|(c) = OU|
|00003500| 54 50 55 54 3b 0d 09 63 | 2e 63 73 43 6f 64 65 20 |TPUT;..c|.csCode |
|00003510| 3d 20 68 6f 77 20 3f 20 | 31 37 20 3a 20 31 38 3b |= how ? |17 : 18;|
|00003520| 0d 09 50 42 43 6f 6e 74 | 72 6f 6c 28 28 50 61 72 |..PBCont|rol((Par|
|00003530| 6d 42 6c 6b 50 74 72 29 | 26 63 2c 20 46 41 4c 53 |mBlkPtr)|&c, FALS|
|00003540| 45 29 3b 0d 09 44 54 52 | 20 3d 20 68 6f 77 3b 0d |E);..DTR| = how;.|
|00003550| 7d 0d 0d 2f 2a 20 2d 2d | 2d 2d 2d 20 43 68 65 63 |}../* --|--- Chec|
|00003560| 6b 20 43 54 53 2f 44 43 | 44 20 2d 2d 2d 2d 2d 2d |k CTS/DC|D ------|
|00003570| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003580| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003590| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 20 2a 2f 0d 0d |--------|--- */..|
|000035a0| 2f 2a 0d 09 50 69 6e 20 | 6e 75 6d 62 65 72 09 53 |/*..Pin |number.S|
|000035b0| 69 67 6e 61 6c 20 6e 61 | 6d 65 09 09 53 69 67 6e |ignal na|me..Sign|
|000035c0| 61 6c 20 64 65 73 63 72 | 69 70 74 69 6f 6e 0d 0d |al descr|iption..|
|000035d0| 09 09 31 09 09 09 48 53 | 4b 6f 09 09 4f 75 74 70 |..1...HS|Ko..Outp|
|000035e0| 75 74 20 48 61 6e 64 73 | 68 61 6b 65 20 28 53 43 |ut Hands|hake (SC|
|000035f0| 43 20 44 54 52 20 6f 75 | 74 70 75 74 29 0d 09 09 |C DTR ou|tput)...|
|00003600| 32 09 09 09 48 53 4b 69 | 09 09 49 6e 70 75 74 20 |2...HSKi|..Input |
|00003610| 48 61 6e 64 73 68 61 6b | 65 20 28 53 43 43 20 43 |Handshak|e (SCC C|
|00003620| 54 53 20 69 6e 70 75 74 | 29 0d 09 09 37 09 09 09 |TS input|)...7...|
|00003630| 47 50 69 09 09 09 47 65 | 6e 65 72 61 6c 2d 70 75 |GPi...Ge|neral-pu|
|00003640| 72 70 6f 73 65 20 69 6e | 70 75 74 20 28 53 43 43 |rpose in|put (SCC|
|00003650| 20 44 43 44 20 69 6e 70 | 75 74 29 0d 2a 2f 0d 0d | DCD inp|ut).*/..|
|00003660| 23 69 66 64 65 66 20 51 | 55 49 43 4b 5f 41 4e 44 |#ifdef Q|UICK_AND|
|00003670| 5f 44 49 52 54 59 0d 0d | 42 6f 6f 6c 65 61 6e 20 |_DIRTY..|Boolean |
|00003680| 53 65 72 69 61 6c 43 54 | 53 28 76 6f 69 64 29 0d |SerialCT|S(void).|
|00003690| 7b 0d 09 72 65 67 69 73 | 74 65 72 20 42 79 74 65 |{..regis|ter Byte|
|000036a0| 20 72 3b 0d 0d 09 69 66 | 20 28 21 49 4e 50 55 54 | r;...if| (!INPUT|
|000036b0| 20 7c 7c 20 50 4f 52 54 | 4e 4f 20 3c 20 31 20 7c | || PORT|NO < 1 ||
|000036c0| 7c 20 50 4f 52 54 4e 4f | 20 3e 20 32 29 0d 09 09 || PORTNO| > 2)...|
|000036d0| 72 65 74 75 72 6e 20 46 | 41 4c 53 45 3b 0d 09 72 |return F|ALSE;..r|
|000036e0| 20 3d 20 2a 28 53 43 43 | 52 64 20 2b 20 28 28 50 | = *(SCC|Rd + ((P|
|000036f0| 4f 52 54 4e 4f 20 3d 3d | 20 32 29 20 3f 20 30 20 |ORTNO ==| 2) ? 0 |
|00003700| 3a 20 32 29 29 3b 09 2f | 2a 20 53 43 43 20 63 68 |: 2));./|* SCC ch|
|00003710| 61 6e 6e 65 6c 20 41 2f | 42 20 63 6f 6e 74 72 6f |annel A/|B contro|
|00003720| 6c 20 2a 2f 0d 09 72 65 | 74 75 72 6e 20 21 28 72 |l */..re|turn !(r|
|00003730| 20 26 20 30 78 32 30 29 | 3b 09 09 09 09 09 09 2f | & 0x20)|;....../|
|00003740| 2a 20 43 54 53 20 69 73 | 20 62 69 74 20 35 20 2a |* CTS is| bit 5 *|
|00003750| 2f 0d 7d 0d 0d 23 65 6c | 73 65 0d 0d 42 6f 6f 6c |/.}..#el|se..Bool|
|00003760| 65 61 6e 20 53 65 72 69 | 61 6c 43 54 53 28 76 6f |ean Seri|alCTS(vo|
|00003770| 69 64 29 0d 7b 0d 09 43 | 6e 74 72 6c 50 61 72 61 |id).{..C|ntrlPara|
|00003780| 6d 20 63 3b 0d 0d 09 69 | 66 20 28 21 49 4e 50 55 |m c;...i|f (!INPU|
|00003790| 54 29 0d 09 09 72 65 74 | 75 72 6e 20 30 3b 0d 09 |T)...ret|urn 0;..|
|000037a0| 43 52 45 46 4e 55 4d 28 | 63 29 20 3d 20 49 4e 50 |CREFNUM(|c) = INP|
|000037b0| 55 54 3b 0d 09 63 2e 63 | 73 43 6f 64 65 20 3d 20 |UT;..c.c|sCode = |
|000037c0| 38 3b 0d 09 69 66 20 28 | 21 50 42 53 74 61 74 75 |8;..if (|!PBStatu|
|000037d0| 73 28 28 50 61 72 6d 42 | 6c 6b 50 74 72 29 26 63 |s((ParmB|lkPtr)&c|
|000037e0| 2c 20 46 41 4c 53 45 29 | 29 0d 09 09 72 65 74 75 |, FALSE)|)...retu|
|000037f0| 72 6e 20 21 28 28 53 65 | 72 53 74 61 52 65 63 20 |rn !((Se|rStaRec |
|00003800| 2a 29 26 63 2e 63 73 50 | 61 72 61 6d 5b 30 5d 29 |*)&c.csP|aram[0])|
|00003810| 2d 3e 63 74 73 48 6f 6c | 64 3b 0d 09 72 65 74 75 |->ctsHol|d;..retu|
|00003820| 72 6e 20 30 3b 0d 7d 0d | 0d 23 65 6e 64 69 66 0d |rn 0;.}.|.#endif.|
|00003830| 0d 42 6f 6f 6c 65 61 6e | 20 53 65 72 69 61 6c 44 |.Boolean| SerialD|
|00003840| 43 44 28 76 6f 69 64 29 | 0d 7b 0d 09 72 65 67 69 |CD(void)|.{..regi|
|00003850| 73 74 65 72 20 42 79 74 | 65 20 72 3b 0d 0d 09 69 |ster Byt|e r;...i|
|00003860| 66 20 28 21 49 4e 50 55 | 54 20 7c 7c 20 50 4f 52 |f (!INPU|T || POR|
|00003870| 54 4e 4f 20 3c 20 31 20 | 7c 7c 20 50 4f 52 54 4e |TNO < 1 ||| PORTN|
|00003880| 4f 20 3e 20 32 29 0d 09 | 09 72 65 74 75 72 6e 20 |O > 2)..|.return |
|00003890| 46 41 4c 53 45 3b 0d 09 | 72 20 3d 20 2a 28 53 43 |FALSE;..|r = *(SC|
|000038a0| 43 52 64 20 2b 20 28 28 | 50 4f 52 54 4e 4f 20 3d |CRd + ((|PORTNO =|
|000038b0| 3d 20 32 29 20 3f 20 30 | 20 3a 20 32 29 29 3b 09 |= 2) ? 0| : 2));.|
|000038c0| 2f 2a 20 53 43 43 20 63 | 68 61 6e 6e 65 6c 20 41 |/* SCC c|hannel A|
|000038d0| 2f 42 20 63 6f 6e 74 72 | 6f 6c 20 2a 2f 0d 09 72 |/B contr|ol */..r|
|000038e0| 65 74 75 72 6e 20 21 28 | 72 20 26 20 30 78 30 38 |eturn !(|r & 0x08|
|000038f0| 29 3b 09 09 09 09 09 09 | 2f 2a 20 44 43 44 20 69 |);......|/* DCD i|
|00003900| 73 20 62 69 74 20 33 20 | 2a 2f 0d 7d 0d 00 00 00 |s bit 3 |*/.}....|
|00003910| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003920| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003930| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003940| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003950| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003960| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003970| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003980| 00 00 01 00 00 00 03 00 | 00 00 02 00 00 00 00 32 |........|.......2|
|00003990| 00 00 00 02 09 44 6f 63 | 75 6d 65 6e 74 73 01 00 |.....Doc|uments..|
|000039a0| 00 00 00 0b 00 00 04 18 | a5 a6 d7 96 a5 bc 13 5c |........|.......\|
|000039b0| 06 50 6f 72 74 2e 63 da | 02 00 00 00 50 61 72 74 |.Port.c.|....Part|
|000039c0| 53 49 54 78 00 00 00 00 | 00 00 00 00 00 01 18 d3 |SITx....|........|
|000039d0| 00 00 50 61 72 74 53 49 | 54 78 00 00 00 00 00 00 |..PartSI|Tx......|
|000039e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000039f0| 00 00 a7 d3 7e 4c 00 00 | 00 00 00 00 03 32 00 01 |....~L..|.....2..|
|00003a00| 00 00 00 4a a5 a4 6c c8 | a5 bc 57 f1 00 00 00 00 |...J..l.|..W.....|
|00003a10| 00 00 00 00 00 00 00 00 | 11 00 00 00 00 c0 00 00 |........|........|
|00003a20| 00 00 00 00 00 00 00 00 | 00 60 00 00 00 00 00 00 |........|.`......|
|00003a30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003a40| 0d 00 00 00 00 02 07 49 | 42 4d 20 53 2f 31 01 00 |.......I|BM S/1..|
|00003a50| 00 00 00 10 00 00 07 5d | a5 b6 c5 26 a5 bc 4d 90 |.......]|...&..M.|
|00003a60| 00 00 00 00 00 42 00 26 | 01 56 02 1e 01 00 00 34 |.....B.&|.V.....4|
|00003a70| 00 80 05 00 ff fb ff f0 | 00 00 00 00 00 00 80 00 |........|........|
|00003a80| 00 00 01 fc 00 18 00 00 | 07 da 00 00 07 e6 0d 53 |........|.......S|
|00003a90| 65 72 69 61 6c 44 65 76 | 69 63 65 00 00 00 0d 5c |erialDev|ice....\|
|00003aa0| 00 00 0d 66 0b 4f 70 65 | 6e 53 65 72 69 61 6c 00 |...f.Ope|nSerial.|
|00003ab0| 00 00 0f a1 00 00 0f b1 | 11 4f 70 65 6e 53 65 72 |........|.OpenSer|
|00003ac0| 69 61 6c 44 72 69 76 65 | 72 00 00 00 11 68 00 00 |ialDrive|r....h..|
|00003ad0| 11 76 0f 53 65 72 69 61 | 6c 44 75 72 61 74 69 6f |.v.Seria|lDuratio|
|00003ae0| 6e 00 00 00 14 47 00 00 | 14 52 0b 53 65 72 69 61 |n....G..|.R.Seria|
|00003af0| 6c 52 65 73 65 74 00 00 | 15 12 00 00 15 1e 0d 53 |lReset..|.......S|
|00003b00| 65 72 69 61 6c 42 69 6e | 61 72 79 00 00 00 16 70 |erialBin|ary....p|
|00003b10| 00 00 16 7b 0b 53 65 72 | 69 61 6c 38 42 69 74 73 |...{.Ser|ial8Bits|
|00003b20| 00 00 17 c5 00 00 17 d2 | 0d 53 65 72 69 61 6c 44 |........|.SerialD|
|00003b30| 72 6f 70 44 54 52 00 00 | 18 de 00 00 18 ed 0f 53 |ropDTR..|.......S|
|00003b40| 65 72 69 61 6c 48 61 6e | 64 73 68 61 6b 65 00 00 |erialHan|dshake..|
|00003b50| 1d f5 00 00 1e 03 0f 53 | 65 72 69 61 6c 47 65 74 |.......S|erialGet|
|00003b60| 53 65 74 75 70 00 00 00 | 22 c4 00 00 22 d2 0f 53 |Setup...|"..."..S|
|00003b70| 65 72 69 61 6c 53 65 74 | 53 65 74 75 70 00 00 00 |erialSet|Setup...|
|00003b80| 25 a0 00 00 25 ab 0b 53 | 65 72 69 61 6c 43 6c 6f |%...%..S|erialClo|
|00003b90| 73 65 00 00 28 40 00 00 | 28 4a 0b 53 65 72 69 61 |se..(@..|(J.Seria|
|00003ba0| 6c 4f 70 65 6e 00 00 00 | 2b 02 00 00 2b 10 0f 53 |lOpen...|+...+..S|
|00003bb0| 65 72 69 61 6c 46 61 73 | 74 52 65 61 64 00 00 00 |erialFas|tRead...|
|00003bc0| 2c 22 00 00 2c 2c 0b 53 | 65 72 69 61 6c 52 65 61 |,"..,,.S|erialRea|
|00003bd0| 64 00 00 00 2e 2a 00 00 | 2e 35 0b 53 65 72 69 61 |d....*..|.5.Seria|
|00003be0| 6c 46 6c 75 73 68 00 00 | 2f 06 00 00 2f 11 0b 53 |lFlush..|/.../..S|
|00003bf0| 65 72 69 61 6c 41 62 6f | 72 74 00 00 30 29 00 00 |erialAbo|rt..0)..|
|00003c00| 30 35 0d 53 65 6e 64 43 | 6f 6d 70 6c 65 74 65 00 |05.SendC|omplete.|
|00003c10| 00 00 30 d4 00 00 30 de | 0b 53 65 72 69 61 6c 53 |..0...0.|.SerialS|
|00003c20| 65 6e 64 00 00 00 32 fa | 00 00 33 05 0b 53 65 72 |end...2.|..3..Ser|
|00003c30| 69 61 6c 43 68 65 63 6b | 00 00 34 03 00 00 34 0c |ialCheck|..4...4.|
|00003c40| 09 53 65 72 69 61 6c 44 | 54 52 00 00 36 00 00 00 |.SerialD|TR..6...|
|00003c50| 36 09 09 53 65 72 69 61 | 6c 43 54 53 00 00 36 e4 |6..Seria|lCTS..6.|
|00003c60| 00 00 36 ed 09 53 65 72 | 69 61 6c 43 54 53 00 00 |..6..Ser|ialCTS..|
|00003c70| 37 b9 00 00 37 c2 09 53 | 65 72 69 61 6c 44 43 44 |7...7..S|erialDCD|
|00003c80| 00 00 01 00 00 00 03 00 | 00 00 02 00 00 00 00 32 |........|.......2|
|00003c90| 00 6e 83 a8 07 5a 00 00 | 00 1c 00 32 00 00 4d 50 |.n...Z..|...2..MP|
|00003ca0| 53 52 00 00 00 0a 03 ef | ff ff 00 00 00 00 00 6e |SR......|.......n|
|00003cb0| b3 ec 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003cc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003cd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003ce0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003cf0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+